{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Parse Factiva and Nexis Output - EU Copyright Reform"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load Packages"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Machine Learning Packages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import datasets\n",
    "from sklearn.decomposition import PCA\n",
    "from sklearn.decomposition import TruncatedSVD\n",
    "from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer\n",
    "from sklearn.pipeline import make_pipeline\n",
    "from sklearn.preprocessing import FunctionTransformer\n",
    "from sklearn.cluster import KMeans"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Topic Modeling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from gensim import corpora\n",
    "from gensim import models\n",
    "import pyLDAvis\n",
    "import pyLDAvis.gensim"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "NLP Packages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\micha\\Anaconda3\\lib\\site-packages\\nltk\\decorators.py:68: DeprecationWarning: `formatargspec` is deprecated since Python 3.5. Use `signature` and the `Signature` object directly\n",
      "  regargs, varargs, varkwargs, defaults, formatvalue=lambda value: \"\"\n",
      "C:\\Users\\micha\\Anaconda3\\lib\\site-packages\\nltk\\lm\\counter.py:15: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working\n",
      "  from collections import Sequence, defaultdict\n"
     ]
    }
   ],
   "source": [
    "import nltk\n",
    "from string import punctuation\n",
    "from nltk.corpus import stopwords\n",
    "import spacy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plotting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt \n",
    "import matplotlib.dates as dates\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Data Processing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import csv\n",
    "import pandas as pd\n",
    "import json\n",
    "from glob import glob\n",
    "from striprtf.striprtf import rtf_to_text\n",
    "import re\n",
    "import os\n",
    "from collections import defaultdict"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Preprocessing of Factiva Output\n",
    "\n",
    "Unfortunately, the factiva output cannot be used directly. The following preprocessing steps are necessary:\n",
    "1. Delte table of content and query details"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'C:\\\\Users\\\\micha\\\\Python\\\\EU_Copyright'"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "os.getcwd()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "15\n",
      "['Factiva_AT_01_010113-311219.rtf', 'Factiva_BE_01_010113-311219.rtf', 'Factiva_DE_01_010113-311218.rtf', 'Factiva_DE_02_010119-310519.rtf', 'Factiva_DE_03_010619-311219.rtf', 'Factiva_ES_01_010113-311219.rtf', 'Factiva_IE_01_010113-311219.rtf', 'Factiva_IT_01_010113-311218.rtf', 'Factiva_IT_02_010119-311219.rtf', 'Factiva_LU_01_010113-311219.rtf', 'Factiva_PL_01_010113-311218.rtf', 'Factiva_PL_02_010119-311219.rtf', 'Factiva_PT_01_010113-311219.rtf', 'Factiva_PT_02_010113-311219_JdN.rtf', 'Factiva_UK_01_010113-311219.rtf']\n"
     ]
    }
   ],
   "source": [
    "filenames = glob(\"Factiva*.rtf\") #glob returns a list of filenames that we care about\n",
    "print(len(filenames)) # length of list\n",
    "print(filenames)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "rtf_string = [] #load data into a list\n",
    "\n",
    "for file in filenames:\n",
    "    with open(file, encoding=\"utf-8\") as f:\n",
    "        thisrtf = f.read()\n",
    "        rtf_string.append(thisrtf)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "15\n",
      "<class 'list'> <class 'str'>\n"
     ]
    }
   ],
   "source": [
    "articles = [rtf_to_text(i) for i in rtf_string] #convert to rtf to readable text\n",
    "print(len(articles))\n",
    "print(type(articles), type(articles[0]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Split documents into single articles\n",
    "At the end of each document, factiva places a line that starts with Dokument and is followed by a combination of letters and numbers. The first letters indicate the medium. This info is used to split the articles at their end."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "articles = [re.sub(r\"(Dokument SDDZ *.*|Dokument DWELT *.*|Dokument ZBILD *.*|Dokument DSTAN *.*|Dokument DIEP *.*|Dokument LXWORD *.*|Dokument TAGBLA *.*|Dokument LS *.*|Dokument LDERN *.*|Dokument LBQ  *.*|Dokument PAIS *.*|Dokument MUNDO *.*|Dokument IRTI *.*|Dokument IRISEX *.*|Dokument CORDES *.*|Dokument LAREP *.*|Dokument RZEPOL *.*|Dokument GAZWYB *.*|Dokument FKTPO *.*|Dokument PUBLO *.*|Dokument CRMAON *.*|Dokument JNLNEG *.*|Dokument GRDN *.*|Dokument T00 *.*|Dokument THESUN *.*)\", \"ENDOFDOCUMENT!\", doc) for doc in articles]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "840\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "Digitalisierung\n",
      "\n",
      "835 Wörter\n",
      "8 November 2019\n",
      "Der Standard\n",
      "DSTAN\n",
      "1_Bundesland\n",
      "Deutsch\n",
      "(c) 2019, Der Standard. http://www.derstandard.at/\n",
      "\n",
      "Die Regierung wird im Bereich digitalpolitischer Agenden viel zu tun haben: ",
      "Von Bundestrojaner über 5G bis zu Urheberrecht und digitaler Schulbildung erweisen sich die aktuellen netzpolitischen Problemstellungen als zahlreich und herausfordernd. Ein Überblick.\n",
      "\n",
      "Muzayen Al-Youssef, Daniel Koller, Birgit Riegler, Markus Sulzbacher\n",
      "\n",
      "Auch wenn es in den vergangenen Jahren besser wurde, ist die Versorgung mit schnellem Internet auf dem Land noch immer nicht ausreichend. Ohne die Möglichkeit, sogenannte Cloud-Anwendungen etwa für die Buchhaltung oder als Datenspeicher nutzen zu können, macht es in vielen Orten noch immer keinen Sinn, ein Unternehmen zu gründen. Dazu kommt, dass ohne schnelles Internet viele Familien von Netflix oder anderen Streaminganbietern, aber auch von digitalen Bildungsprogrammen abgeschnitten sind. Dies gilt es in Windeseile zu \n"
     ]
    }
   ],
   "source": [
    "articles_split = []\n",
    "\n",
    "for doc in articles:\n",
    "    articles_split.extend(doc.split(r\"ENDOFDOCUMENT!\"))\n",
    "\n",
    "print(len(articles_split))\n",
    "print(articles_split[1][:1000])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Preprocessing and Cleaning\n",
    "Some weird stuff happens when dealing with '\\n' directly. Therefore, it is first replaced by '!Paragraph!'. Then, '\\x84' and '\\x93' which appear in some articles are deleted."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "840\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "' !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Kommentar!PARAGRAPH!Überwachung abgewehrt!PARAGRAPH!!PARAGRAPH!Muzayen Al-Youssef !PARAGRAPH!410 Wörter!PARAGRAPH!12 Dezember 2019!PARAGRAPH!Der Standard!PARAGRAPH!DSTAN!PARAGRAPH!1_Bundesland!PARAGRAPH!32!PARAGRAPH!Deutsch!PARAGRAPH!(c) 2019, Der Standard. http://www.derstandard.at/!PARAGRAPH!!PARAGRAPH!Überwachung abgewehrt!PARAGRAPH!!PARAGRAPH!Der Verfassungsgerichtshof hat dem Spuk ein Ende bereitet: Das \"Sicherheitspaket\", wie die türkis-blaue Regierung ihr Vorhaben inklusive Autobahnüberwachung und Bundestrojaner bezeichnete, darf es in der Form nicht geben. Festgestellt wurden massive Verstöße gegen den Datenschutz und das Grundrecht auf Privatsphäre.!PARAGRAPH!!PARAGRAPH!Das ist wenig überraschend – rückten die beanstandeten Maßnahmen die Zweite Republik doch näher an einen technologisch gestützten Überwachungsstaat, als das in der Vergangenheit je der Fall gewesen war. Speziell der Bundestrojaner, der bereits im April kommenden Jahres zum Einsatz hätte kommen sollen, erweist sich als besonders fragwürdig. So räumte die türkis-blaue Regierung mit Sebastian Kurz und Heinz-Christian Strache an der Spitze Behörden die Möglichkeit ein, bei verdächtigen Bürgern einzubrechen, heimlich eine Schadsoftware auf ihren Geräten zu installieren und sie dann ohne deren Wissen zu überwachen. Dabei handelt es sich übrigens um Schadsoftware, die für gewöhnlich von Unternehmen mit eher fragwürdigem Ruf gekauft wird. Zu den Kunden gehören beispielsweise repressive Diktaturen aus dem Nahen Osten, die solche Programme nutzen, um Aktivisten und potenzielle Regierungsgegner zu bespitzeln.!PARAGRAPH!!PARAGRAPH!Dass ein solcher Wahnsinn überhaupt den Nationalrat passieren konnte, ist bei den netzpolitischen Positionen der ÖVP allerdings wenig verwunderlich. Schließlich geht es hier um eine Partei, deren Nationalratspräsident Wolfgang Sobotka erst im Februar anwesenden deutschen Medien zufolge beim Europäischen Polizeikongress China dafür lobte, keine Hemmungen zu haben und den Datenschutz erfolgreich zwecks Analyse seiner Bürger zu umgehen. China ist für die weitreichende Überwachung und Zensur seiner Bevölkerung bekannt und berüchtigt.!PARAGRAPH!!PARAGRAPH!Es bleibt also zu hoffen, dass die Grünen, die sich in der Vergangenheit vor allem auf EU-Ebene als Gegner von Überwachung und Einschränkungen eines offenen Internets positioniert haben, diese Agenden auch bei ihren Regierungsverhandlungen mit der Volkspartei berücksichtigen. Schließlich gibt es für die kommende Regierung zahlreiche Streitpunkte in der Netzpolitik: So will die ÖVP weiterhin die Anonymität im Netz abschaffen; auch setzte sie sich in der Vergangenheit für eine strenge Auslegung der beschlossenen Urheberrechtsreform der EU ein.!PARAGRAPH!!PARAGRAPH!Es ist allerdings kein gutes Zeichen, dass bei der Reaktion der Grünen auf das Urteil lediglich die FPÖ kritisiert wird, anstatt die Rolle der ÖVP anzusprechen. Denn obwohl die Freiheitlichen voll und ganz hinter den nun gekippten Maßnahmen stehen, war in der Vergangenheit die Volkspartei die einzige Konstante bei der Vorstellung diesbezüglicher Pläne. Bereits 2016 und 2017 plante sie während ihrer Koalition mit der SPÖ solche Maßnahmen. 2018 wurden ihre Wünsche in Zusammenarbeit mit der FPÖ zur Realität – zumindest bis zum aktuellen Urteil.!PARAGRAPH!!PARAGRAPH!Höchstgericht kippt Sicherheitspaket!PARAGRAPH!!PARAGRAPH!'"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "articles_split = [re.sub(r\"\\n\", \"!PARAGRAPH!\", article) for article in articles_split]\n",
    "articles_split = [re.sub(r\"\\x84|\\x93\", \"\", article) for article in articles_split]\n",
    "\n",
    "print(len(articles_split))\n",
    "articles_split[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Delete Search Summaries that are included in factiva output"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "825\n",
      " !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Kommentar!PARAGRAPH!Überwachung abgewehrt!PARAGRAPH!!PARAGRAPH!Muzayen Al-Youssef !PARAGRAPH!410 Wörter!PARAGRAPH!12 Dezember 2019!PARAGRAPH!Der Standard!PARAGRAPH!DSTAN!PARAGRAPH!1_Bundesland!PARAGRAPH!32!PARAGRAPH!Deutsch!PARAGRAPH!(c) 2019, Der Standard. http://www.derstandard.at/!PARAGRAPH!!PARAGRAPH!Überwachung abgewehrt!PARAGRAPH!!PARAGRAPH!Der Verfassungsgerichtshof hat dem Spuk ein Ende bereitet: Das \"Sicherheitspaket\", wie die türkis-blaue Regierung ihr Vorhaben inklusive Autobahnüberwachung und Bundestrojaner bezeichnete, darf es in der Form nicht geben. Festgestellt wurden massive Verstöße gegen den Datenschutz und das Grundrecht auf Privatsphäre.!PARAGRAPH!!PARAGRAPH!Das ist wenig überraschend – rückten die beanstandeten Maßnahmen die Zweite Republik doch näher an einen technologisch gestützten Überwachungsstaat, als das in der Vergangenheit je der Fall gewesen war. Speziell der Bundestrojaner, der bereits im April kommenden Jahres zum Einsatz hätte kommen sollen, erweist sich als besonders fragwürdig. So räumte die türkis-blaue Regierung mit Sebastian Kurz und Heinz-Christian Strache an der Spitze Behörden die Möglichkeit ein, bei verdächtigen Bürgern einzubrechen, heimlich eine Schadsoftware auf ihren Geräten zu installieren und sie dann ohne deren Wissen zu überwachen. Dabei handelt es sich übrigens um Schadsoftware, die für gewöhnlich von Unternehmen mit eher fragwürdigem Ruf gekauft wird. Zu den Kunden gehören beispielsweise repressive Diktaturen aus dem Nahen Osten, die solche Programme nutzen, um Aktivisten und potenzielle Regierungsgegner zu bespitzeln.!PARAGRAPH!!PARAGRAPH!Dass ein solcher Wahnsinn überhaupt den Nationalrat passieren konnte, ist bei den netzpolitischen Positionen der ÖVP allerdings wenig verwunderlich. Schließlich geht es hier um eine Partei, deren Nationalratspräsident Wolfgang Sobotka erst im Februar anwesenden deutschen Medien zufolge beim Europäischen Polizeikongress China dafür lobte, keine Hemmungen zu haben und den Datenschutz erfolgreich zwecks Analyse seiner Bürger zu umgehen. China ist für die weitreichende Überwachung und Zensur seiner Bevölkerung bekannt und berüchtigt.!PARAGRAPH!!PARAGRAPH!Es bleibt also zu hoffen, dass die Grünen, die sich in der Vergangenheit vor allem auf EU-Ebene als Gegner von Überwachung und Einschränkungen eines offenen Internets positioniert haben, diese Agenden auch bei ihren Regierungsverhandlungen mit der Volkspartei berücksichtigen. Schließlich gibt es für die kommende Regierung zahlreiche Streitpunkte in der Netzpolitik: So will die ÖVP weiterhin die Anonymität im Netz abschaffen; auch setzte sie sich in der Vergangenheit für eine strenge Auslegung der beschlossenen Urheberrechtsreform der EU ein.!PARAGRAPH!!PARAGRAPH!Es ist allerdings kein gutes Zeichen, dass bei der Reaktion der Grünen auf das Urteil lediglich die FPÖ kritisiert wird, anstatt die Rolle der ÖVP anzusprechen. Denn obwohl die Freiheitlichen voll und ganz hinter den nun gekippten Maßnahmen stehen, war in der Vergangenheit die Volkspartei die einzige Konstante bei der Vorstellung diesbezüglicher Pläne. Bereits 2016 und 2017 plante sie während ihrer Koalition mit der SPÖ solche Maßnahmen. 2018 wurden ihre Wünsche in Zusammenarbeit mit der FPÖ zur Realität – zumindest bis zum aktuellen Urteil.!PARAGRAPH!!PARAGRAPH!Höchstgericht kippt Sicherheitspaket!PARAGRAPH!!PARAGRAPH!\n"
     ]
    }
   ],
   "source": [
    "query = r\"Zusammenfassung der Suche\"\n",
    "q_list = []\n",
    "articles_woquery = []\n",
    "\n",
    "for article in articles_split:\n",
    "    if query in article:\n",
    "        q_list.append(article)\n",
    "    else:\n",
    "        articles_woquery.append(article)\n",
    "        \n",
    "print(len(articles_woquery))\n",
    "print(articles_woquery[0])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Split articles into an infoblock containing all the meta info like author, newspaper, no of words and publication date and fulltext of the article"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "825\n"
     ]
    }
   ],
   "source": [
    "articles_split = [re.sub(r\"!PARAGRAPH! *(Deutsch|Italienisch|Französisch|Englisch|Spanisch|Polnisch|Portugiesisch) *!PARAGRAPH! *.*? *!PARAGRAPH!!PARAGRAPH!\", \"STARTOFARTICLE\", article) for article in articles_woquery] #The language of the article is the second last info from the infoblock before the line specifying the copyright. It is used to split the articles.\n",
    "    \n",
    "print(len(articles_split))\n",
    "\n",
    "#Test if successful for each article\n",
    "for i in range(len(articles_split)):\n",
    "    if r\"STARTOFARTICLE\" in articles_split[i]:\n",
    "        pass\n",
    "    else:\n",
    "        print(\"There was an error in article i\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "articles_split = [article.split(r\"STARTOFARTICLE\") for article in articles_split] #The splitting"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Put the articles into a dictionary\n",
    "\n",
    "The dictionary includes an infoblock including the author, paper, number of words, date and other interesting information on the article and the fulltext. This can be later processed further."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'infoblock': '!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Digitalisierung!PARAGRAPH!!PARAGRAPH!835 Wörter!PARAGRAPH!8 November 2019!PARAGRAPH!Der Standard!PARAGRAPH!DSTAN!PARAGRAPH!1_Bundesland',\n",
       " 'fulltext': 'Die Regierung wird im Bereich digitalpolitischer Agenden viel zu tun haben:\\u2028Von Bundestrojaner über 5G bis zu Urheberrecht und digitaler Schulbildung erweisen sich die aktuellen netzpolitischen Problemstellungen als zahlreich und herausfordernd. Ein Überblick.!PARAGRAPH!!PARAGRAPH!Muzayen Al-Youssef, Daniel Koller, Birgit Riegler, Markus Sulzbacher!PARAGRAPH!!PARAGRAPH!Auch wenn es in den vergangenen Jahren besser wurde, ist die Versorgung mit schnellem Internet auf dem Land noch immer nicht ausreichend. Ohne die Möglichkeit, sogenannte Cloud-Anwendungen etwa für die Buchhaltung oder als Datenspeicher nutzen zu können, macht es in vielen Orten noch immer keinen Sinn, ein Unternehmen zu gründen. Dazu kommt, dass ohne schnelles Internet viele Familien von Netflix oder anderen Streaminganbietern, aber auch von digitalen Bildungsprogrammen abgeschnitten sind. Dies gilt es in Windeseile zu ändern – dafür muss der Staat zusätzliche Mittel lockermachen und die Zügel beim Ausbau stärker in die Hand nehmen.!PARAGRAPH!!PARAGRAPH!Bundestrojaner!PARAGRAPH!!PARAGRAPH!Im kommenden Jahr soll es so weit sein, der Bundestrojaner soll dann durch Österreich galoppieren. Er ist Teil des „Sicherheitspakets“, das ÖVP und FPÖ gemeinsam schlossen, und sieht eine umfassende Überwachung von Geräten anhand einer Software vor, die sich Sicherheitslücken zunutze macht. Eingesetzt werden soll er bei Verbrechen mit einer Strafobergrenze von mehr als zehn Jahren, bei einem Verdacht auf terroristische Straftaten oder bei Straftaten gegen Leib und Leben sowie die sexuelle Integrität mit einer Strafobergrenze von mehr als fünf Jahren. Aktuell prüft der Verfassungsgerichtshof nach einer Beschwerde von Neos und SPÖ, ob der Gesetzestext zulässig ist. Das Gesetz hat vor allem bei Datenschützern für massive Kritik gesorgt, auch für die neue Regierung wird es Thema sein müssen.!PARAGRAPH!!PARAGRAPH!Im Rahmen der türkis-blauen Regierung war einedigitale Ausweispflicht geplant, vor einer Umsetzung wurde diese allerdings zersprengt. Mit dem umstrittenen Gesetzesentwurf wollte die Koalition Poster verpflichten, ihre persönlichen Daten zu hinterlassen. Dadurch sollte mit der Anonymität im Netz Schluss sein – User hätten zwar weiterhin unter Pseudonym posten können, hätten Behörden oder im Fall einer Beleidigung Private Zugriff verlangt, hätte dieser aber gewährt werden müssen. Die Pläne sorgten für massive Kritik, auch in einer Stellungnahme des Obersten Gerichtshofs. Da die ÖVP maßgeblich am Vorantreiben dieser Pläne beteiligt war, ist die Wahrscheinlichkeit groß, dass das Gesetz in der einen oder anderen Form zurückkehrt. Dabei kritisieren Experten, dass die Problematik, gegen die man eigentlich vorgehen möchte – nämlich Hass im Netz –, auf diese Weise nicht eingedämmt würde.!PARAGRAPH!!PARAGRAPH!Die Netzneutralität wird aktuell unter die Lupe genommen. Bei der EU-Verordnung geht es darum, dass alle Daten im Netz gleichbehandelt werden müssen. Aufgrund des neuen Mobilfunkstandards 5G werden die Regeln aber evaluiert. Für die neue Regierung gilt es, sich am heimischen Mobilfunkmarkt für eine Einhaltung der Vorgaben einzusetzen.!PARAGRAPH!!PARAGRAPH!Anfang des Jahres wurde EU-weit die Urheberrechtsreform beschlossen, die in der Vergangenheit immer wieder für Furore gesorgt hat. Besonders umstritten bei der Richtlinie ist der Artikel 17, der zuvor als Artikel 13 in Verruf geraten ist. Dieser sieht nämlich vor, dass Inhalte bereits vor ihrer Veröffentlichung geprüft werden sollen, um mögliche Urheberrechtsverletzungen ausfindig zu machen. Netzaktivisten sehen darin eine mögliche Zensur, da es schon im Vorfeld anhand eines Uploadfilters zu Blockierungen kommt. Auch beschlossen wurde ein Leistungsschutzrecht, das künftig etwa die Darstellung von sogenannten „Snippets“, kurzen Textausschnitten, beispielsweise von publizistischen Inhalten, ohne finanzielle Vergütung verbietet. Die neue Regierung wird damit beauftragt sein, die Vorgaben in nationales Recht umzusetzen.!PARAGRAPH!!PARAGRAPH!2018 wurde mit der sogenannten Digitalen Grundbildung in Neuen Mittelschulen und AHS-Unterstufen ein neues, verpflichtendes Fach etabliert. Vermittelt werden hier unter anderem gesellschaftliche Aspekte der Digitalisierung, Medienkompetenzen, der Umgang mit Social Media, Standard-Anwendungen, Mediengestaltung sowie Sicherheit. Die neue Regierung wird hier darauf achten müssen, dass der Lehrplan aktuell bleibt. Gerade hinsichtlich der Entwicklung neuer sozialer Netzwerke und deren Problemfelder wie Cybermobbing, Hasspostings oder die Verbreitung von Fake-News ist auf Aktualität zu achten. Die Ausbildung von Pädagogen darf dem Wissensstand der Schülerinnen und Schüler nicht hinterherhinken.!PARAGRAPH!!PARAGRAPH!Wirtschaftsfaktor Games!PARAGRAPH!!PARAGRAPH!Die Integration von Games im Schulalltag könnte eine Brücke zwischen angewandter Informatik und den Interessen der Schüler schlagen und in der Folge den Wirtschaftsstandort fördern. Mitte der 90er war Österreich führend bei der Entwicklung von Computerspielen. Mehr als zwei Jahrzehnte später ist davon nicht mehr viel übrig. Die Spielebranche fährt Jahr für Jahr neue Rekordgewinne ein – die heimische Industrie spielt hierbei eine geringe Rolle. 87 Studios gibt es in Österreich, der gesammelte Jahresumsatz lag zwischen 2016 und 2017 bei rund 24 Millionen Euro. Fast alle Projekte werden größtenteils mit privaten Ersparnissen finanziert. Um das Standing der heimischen Spielebranche aufzuwerten, wären vermehrt Förderungen für das Leitmedium des 21. Jahrhunderts durchaus hilfreich.!PARAGRAPH!!PARAGRAPH!Auch die Anerkennung von E-Sport als Sportart könnte dafür sorgen, dass Österreich beim digitalen Trendsport in Zukunft nicht hinterherläuft. Kompetitives Gaming zieht immer mehr Zuschauer an, im Alpenland rückt das Thema nun zunehmend in den Fokus. Die nächste Regierung könnte – ob Anerkennung oder nicht – zumindest dafür sorgen, dass in diesem Zusammenhang offene Fragen rund um das Arbeits- und Steuerrecht geklärt werden.!PARAGRAPH!!PARAGRAPH!Wir berichten in loser Folge über Themen, deren sich die künftige Regierung annehmen sollte. \\u2028Bisher erschienen sind: Bildung, Umwelt, Standort, Gleichstellung, Abgehängte Junge, Wohnen, Innere Sicherheit, Pensionen, Kultur und Außenpolitik.!PARAGRAPH!!PARAGRAPH!TO-DOs!PARAGRAPH!!PARAGRAPH!FÜR ÖSTERREICHS!PARAGRAPH!!PARAGRAPH!POLITIK!PARAGRAPH!!PARAGRAPH!'}"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "articles_dict = []\n",
    "\n",
    "for article in articles_split:\n",
    "    articles_dict.append({\n",
    "        'infoblock': article[0],\n",
    "        'fulltext': article[1]})\n",
    "\n",
    "articles_dict[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Extract the date from the infoblock and add it to the dictionary"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Extract the date"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "date_pre = []\n",
    "for article in articles_dict:\n",
    "    date_pre.append(re.findall(r\"(\\d{1,2}) ([jJ]anuar|[fF]ebruar|[mM]ärz|[aA]pril|[mM]ai|[jJ]uni|[jJ]uli|[aA]ugust|[sS]eptember|[Oo]ktober|[nN]ovember|[dD]ezember) (\\d{4}).*\", article[\"infoblock\"]))\n",
    "    for i in range(len(date_pre)):\n",
    "        try:        \n",
    "            date_pre[i][0]\n",
    "        except: #when there is no author indicated assign NA\n",
    "            date_pre[i] = [\"NA\"]\n",
    "    \n",
    "date = []\n",
    "for i in range(len(date_pre)):\n",
    "    date.append(' '.join(date_pre[i][0])) # join the tuple to a string and append to a list"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Add to the dict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(len(articles_dict)):\n",
    "    articles_dict[i]['date'] = date[i]\n",
    "    articles_dict[i]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Put into dataframe and add datetime index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>infoblock</th>\n",
       "      <th>fulltext</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Kommentar!PA...</td>\n",
       "      <td>Überwachung abgewehrt!PARAGRAPH!!PARAGRAPH!Der...</td>\n",
       "      <td>12 Dezember 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Die Regierung wird im Bereich digitalpolitisch...</td>\n",
       "      <td>8 November 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Die Buchbranche muss ökologischer werden! Bene...</td>\n",
       "      <td>6 November 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Irgendwo in den virtuellen Weiten zwischen Ins...</td>\n",
       "      <td>29 Oktober 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>OFFENERBRIEF!PARAGRAPH!!PARAGRAPH!Der 24. Okto...</td>\n",
       "      <td>24 Oktober 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>820</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Changes made to browser standards will make it...</td>\n",
       "      <td>3 Mai 2016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>821</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>The Wikipedia co-founder warns that freedom of...</td>\n",
       "      <td>8 Juli 2015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>822</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Pirates are trying to tear down buildings' rig...</td>\n",
       "      <td>24 Juni 2015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>823</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>The DSM regulation aims to level the playing f...</td>\n",
       "      <td>4 Juni 2015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>824</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Chancery Division!PARAGRAPH!!PARAGRAPH!Publish...</td>\n",
       "      <td>23 April 2013</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>825 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                             infoblock  \\\n",
       "0     !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Kommentar!PA...   \n",
       "1    !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2    !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "3    !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "4    !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "..                                                 ...   \n",
       "820  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "821  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "822  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "823  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "824  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "\n",
       "                                              fulltext              date  \n",
       "0    Überwachung abgewehrt!PARAGRAPH!!PARAGRAPH!Der...  12 Dezember 2019  \n",
       "1    Die Regierung wird im Bereich digitalpolitisch...   8 November 2019  \n",
       "2    Die Buchbranche muss ökologischer werden! Bene...   6 November 2019  \n",
       "3    Irgendwo in den virtuellen Weiten zwischen Ins...   29 Oktober 2019  \n",
       "4    OFFENERBRIEF!PARAGRAPH!!PARAGRAPH!Der 24. Okto...   24 Oktober 2019  \n",
       "..                                                 ...               ...  \n",
       "820  Changes made to browser standards will make it...        3 Mai 2016  \n",
       "821  The Wikipedia co-founder warns that freedom of...       8 Juli 2015  \n",
       "822  Pirates are trying to tear down buildings' rig...      24 Juni 2015  \n",
       "823  The DSM regulation aims to level the playing f...       4 Juni 2015  \n",
       "824  Chancery Division!PARAGRAPH!!PARAGRAPH!Publish...     23 April 2013  \n",
       "\n",
       "[825 rows x 3 columns]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_factiva = pd.DataFrame.from_dict(articles_dict)\n",
    "df_factiva"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(825, 3)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>infoblock</th>\n",
       "      <th>fulltext</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>16</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>„Das ist ein beinhartes Protestlied. Allerding...</td>\n",
       "      <td>6 04 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>31</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Ko...</td>\n",
       "      <td>Die Urheberrechtsreform bedeutet das Ende des ...</td>\n",
       "      <td>25 03 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>520</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>01.03. | Der Luxemburger Kugelstoßer Bob Berte...</td>\n",
       "      <td>31 12 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>481</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Su del 318% in un anno le denunce alla Polizia...</td>\n",
       "      <td>21 04 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>61</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Analyse. Die strittige Reform des EU-Urheberre...</td>\n",
       "      <td>13 09 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>199</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>München - Der erfolgreichste politische Kommen...</td>\n",
       "      <td>23 05 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>303</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Pantallas!PA...</td>\n",
       "      <td>Ante la inminente posibilidad de formación de ...</td>\n",
       "      <td>16 12 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>554</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Straßburg. Bei der umstrittenen Reform des EU-...</td>\n",
       "      <td>13 09 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>252</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Berlin - In der großen Koalition in Berlin esk...</td>\n",
       "      <td>25 03 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>548</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Arbeitslosenzahl stagniert!PARAGRAPH!!PARAGRAP...</td>\n",
       "      <td>21 02 2019</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                             infoblock  \\\n",
       "16   !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "31   !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Ko...   \n",
       "520  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "481  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "61   !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "199  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "303   !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Pantallas!PA...   \n",
       "554  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "252  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "548  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "\n",
       "                                              fulltext        date  \n",
       "16   „Das ist ein beinhartes Protestlied. Allerding...   6 04 2019  \n",
       "31   Die Urheberrechtsreform bedeutet das Ende des ...  25 03 2019  \n",
       "520  01.03. | Der Luxemburger Kugelstoßer Bob Berte...  31 12 2019  \n",
       "481  Su del 318% in un anno le denunce alla Polizia...  21 04 2019  \n",
       "61   Analyse. Die strittige Reform des EU-Urheberre...  13 09 2018  \n",
       "199  München - Der erfolgreichste politische Kommen...  23 05 2019  \n",
       "303  Ante la inminente posibilidad de formación de ...  16 12 2019  \n",
       "554  Straßburg. Bei der umstrittenen Reform des EU-...  13 09 2018  \n",
       "252  Berlin - In der großen Koalition in Berlin esk...  25 03 2019  \n",
       "548  Arbeitslosenzahl stagniert!PARAGRAPH!!PARAGRAP...  21 02 2019  "
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "repl = [(r\"Januar\", \"01\"), \n",
    "        (r\"Februar\", \"02\"), \n",
    "        (r\"März\", \"03\"),\n",
    "        (r\"April\", \"04\"),\n",
    "        (r\"Mai\", \"05\"),\n",
    "        (r\"Juni\", \"06\"),\n",
    "        (r\"Juli\", \"07\"),\n",
    "        (r\"August\", \"08\"),\n",
    "        (r\"September\", \"09\"),\n",
    "        (r\"Oktober\", \"10\"),\n",
    "        (r\"November\", \"11\"),\n",
    "        (r\"Dezember\", \"12\")]\n",
    "\n",
    "for i in range(len(df_factiva['date'])):\n",
    "    for old, new in repl:\n",
    "        df_factiva['date'][i] = re.sub(old, new, df_factiva['date'][i])\n",
    "        \n",
    "print(df_factiva.shape)\n",
    "df_factiva.sample(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>infoblock</th>\n",
       "      <th>fulltext</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2019-12-12</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Kommentar!PA...</td>\n",
       "      <td>Überwachung abgewehrt!PARAGRAPH!!PARAGRAPH!Der...</td>\n",
       "      <td>12 12 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-11-08</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Die Regierung wird im Bereich digitalpolitisch...</td>\n",
       "      <td>8 11 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-11-06</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Die Buchbranche muss ökologischer werden! Bene...</td>\n",
       "      <td>6 11 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-10-29</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Irgendwo in den virtuellen Weiten zwischen Ins...</td>\n",
       "      <td>29 10 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-10-24</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>OFFENERBRIEF!PARAGRAPH!!PARAGRAPH!Der 24. Okto...</td>\n",
       "      <td>24 10 2019</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                    infoblock  \\\n",
       "datetime                                                        \n",
       "2019-12-12   !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Kommentar!PA...   \n",
       "2019-11-08  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2019-11-06  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2019-10-29  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2019-10-24  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "\n",
       "                                                     fulltext        date  \n",
       "datetime                                                                   \n",
       "2019-12-12  Überwachung abgewehrt!PARAGRAPH!!PARAGRAPH!Der...  12 12 2019  \n",
       "2019-11-08  Die Regierung wird im Bereich digitalpolitisch...   8 11 2019  \n",
       "2019-11-06  Die Buchbranche muss ökologischer werden! Bene...   6 11 2019  \n",
       "2019-10-29  Irgendwo in den virtuellen Weiten zwischen Ins...  29 10 2019  \n",
       "2019-10-24  OFFENERBRIEF!PARAGRAPH!!PARAGRAPH!Der 24. Okto...  24 10 2019  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_factiva['datetime'] = pd.to_datetime(df_factiva['date'], format=\"%d %m %Y\")\n",
    "df_factiva = df_factiva.set_index('datetime')\n",
    "df_factiva.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Preprocessing of Nexis Output\n",
    "\n",
    "Unfortunately, the Nexis output cannot be used directly. The following preprocessing steps are necessary:\n",
    "1. Delte query details at the beginning of the RTF"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load and Preprocess Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "4\n",
      "['Nexis_FR_01.RTF', 'Nexis_FR_02.RTF', 'Nexis_MT_01_010114-311219.RTF', 'Nexis_NL_01_010113-311219.RTF']\n"
     ]
    }
   ],
   "source": [
    "filenames = glob(\"Nexis*.rtf\") #glob returns a list of filenames that we care about\n",
    "print(len(filenames)) # length of list\n",
    "print(filenames)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "rtf_string = [] #load data into a list\n",
    "\n",
    "for file in filenames:\n",
    "    with open(file, encoding=\"utf-8\") as f:\n",
    "        thisrtf = f.read()\n",
    "        rtf_string.append(thisrtf)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "4\n",
      "<class 'list'> <class 'str'>\n"
     ]
    }
   ],
   "source": [
    "articles = [rtf_to_text(i) for i in rtf_string] #convert to rtf to readable text\n",
    "print(len(articles))\n",
    "print(type(articles), type(articles[0]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Split documents into single articles\n",
    "At the end of each document, factiva places a line that starts with Dokument and is followed by a combination of letters and numbers. The first letters indicate the medium. This info is used to split the articles at their end."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "189\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "Le Monde\n",
      "vendredi 25 octobre 2019\n",
      "\n",
      "\n",
      "Copyright 2019 Le Monde Interactif tous droits réservés\n",
      "\n",
      "\n",
      "Section: LE MONDE; Pg. 28\n",
      "Length: 586 words\n",
      "Body\n",
      "\n",
      "\n",
      "            Google est décidément plus doué pour l’innovation que pour le respect du droit. Au moment où le groupe américain vient de franchir une étape technologique majeure dans le calcul quantique, il tente de contourner la directive européenne sur le « droit d’auteur dans le marché unique numérique ». Jeudi 24 octobre, ce texte entre en application, la France étant le premier pays à le transposer dans sa législation nationale. Mais, en le vidant de son sens et de son objet, le moteur de recherche lance un défi juridique à l’Union européenne (UE) et prend le risque de se mettre délibérément et cyniquement hors la loi.\n",
      "            Cette disposition, appelée encore « droit voisin », a été adoptée au forceps, le 26 mars, par le Parlement européen, malgré un intense lobbying des géants du Net. Son objectif consiste à aider les éditeurs de\n"
     ]
    }
   ],
   "source": [
    "articles_split = []\n",
    "\n",
    "for doc in articles:\n",
    "    articles_split.extend(doc.split(r\"End of Document\"))\n",
    "\n",
    "print(len(articles_split))\n",
    "print(articles_split[27][:1000])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Last element of the list is empty and deleted here."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "articles_split = articles_split[0:(len(articles_split)-1)]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Split articles into paragraphs\n",
    "Some weird stuff happens when dealing with '\\n' directly. Therefore, it is first replaced by '!Paragraph!'. Then, '\\x84' and '\\x93' which appear in some articles are deleted. Finally, the articles are split. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "188\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Le Monde!PARAGRAPH!28 mars 2019 jeudi!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Copyright 2019 Le Monde Interactif Tous Droits Réservés!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Section:\\xa0MÉTÉO - JEUX - ECRANS; Pg. 18!PARAGRAPH!Length:\\xa01054 words!PARAGRAPH!Byline:\\xa0Sophie Petitjean (Bruxelles, bureau européen), et Nicole Vulser!PARAGRAPH!Highlight:\\xa0Le projet de directive, adopté mardi, à Strasbourg, par le Parlement européen, protège les créateurs et r'"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "articles_split = [re.sub(r\"\\n\", \"!PARAGRAPH!\", article) for article in articles_split]\n",
    "\n",
    "print(len(articles_split))\n",
    "articles_split[2][:500]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "articles_split = [article.split(r\"!PARAGRAPH!Body!PARAGRAPH!\") for article in articles_split]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Put the articles into a dictionary\n",
    "\n",
    "The dictionary includes an infoblock including the author, newspaper, number of words, date and other interesting information on the article. Finally, the fulltext is included paragraphs."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100 error\n",
      "149 error\n",
      "160 error\n"
     ]
    }
   ],
   "source": [
    "#Delete empty articles\n",
    "articles_woempty = []\n",
    "\n",
    "for i in range(len(articles_split)):\n",
    "    if len(articles_split[i]) == 2:\n",
    "        articles_woempty.append(articles_split[i])\n",
    "    else:\n",
    "        print(i, \"error\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "articles_dict = []\n",
    "\n",
    "for article in articles_woempty:\n",
    "    articles_dict.append({'infoblock': article[0],\n",
    "                      'fulltext': article[1]})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Some cleaning is necessary: At the end of the fulltexts there is a classification section which will be deleted."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "for article in articles_dict:\n",
    "    article['fulltext'] = article['fulltext'].split(r\"!PARAGRAPH!Classification!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!\")[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "#for i in range(len(articles_dict)):\n",
    "#    articles_dict[i]['fulltext'] = re.sub(r\"!PARAGRAPH!!PARAGRAPH!ABSTRACT!PARAGRAPH!\", \"\", articles_dict[i]['fulltext'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Split fulltext in paragraphs and delete empty paragraphs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "for article in articles_dict:\n",
    "    article['fulltext'] = article['fulltext'].split(r\"!PARAGRAPH!\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Extract date from the infoblock and add to dictionary"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "date_pre = []\n",
    "for article in articles_dict:\n",
    "    date_pre.append(re.findall(r\"(\\d{1,2}) ([jJ]anuary|[fF]ebruary|[mM]arch|[aA]pril|[mM]ay|[jJ]une|[jJ]uly|[aA]ugust|[sS]eptember|[Oo]ctober|[nN]ovember|[dD]ecember|[jJ]anuari|[fF]ebruari|[mM]aart|[aA]pril|[mM]ei|[jJ]uni|[jJ]uli|[aA]ugustus|[sS]eptember|[Oo]ktober|[nN]ovember|[dD]ecember|[Jj]anvier|[Ff]évrier|[Mm]ars|[Aa]vril|[Mm]ai|[Jj]uin|[Jj]uillet|[Aa]oût|[Ss]eptembre|[Oo]ctobre|[Nn]ovembre|[Dd]écembre) (\\d{4}).*\", article[\"infoblock\"]))\n",
    "    for i in range(len(date_pre)):\n",
    "        try:        \n",
    "            date_pre[i][0]\n",
    "        except: #when there is no author indicated assign NA\n",
    "            date_pre[i] = [\"NA\"]\n",
    "    \n",
    "date = []\n",
    "for i in range(len(date_pre)):\n",
    "    date.append(' '.join(date_pre[i][0])) # join the tuple to a string and append to a list"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Add to the dict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(len(articles_dict)):\n",
    "    articles_dict[i]['date'] = date[i]\n",
    "    articles_dict[i]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Define a function to parse the articles (copy paste from Gesis class)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Put into a dataframe and add datetime index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>infoblock</th>\n",
       "      <th>fulltext</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!Le Monde!PARAGRAPH!12 se...</td>\n",
       "      <td>[, , Mercredi 12 septembre, à Strasbourg, haut...</td>\n",
       "      <td>12 septembre 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, ,             L’Internet gratuit vit peut-ê...</td>\n",
       "      <td>27 août 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , Après deux ans et demi de discussions par...</td>\n",
       "      <td>28 mars 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , NUMÉRIQUE,   Après trois jours de discuss...</td>\n",
       "      <td>15 Février 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , LÉGISLATION ,  Après deux ans et demi de ...</td>\n",
       "      <td>27 Mars 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>180</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , Analyse Suske en Wiske-zaak , De erven-Va...</td>\n",
       "      <td>11 september 2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>181</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , De laatste horde voor de nieuwe Europese ...</td>\n",
       "      <td>16 april 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>182</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, ,          Google gaat de manier waarop de ...</td>\n",
       "      <td>27 september 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>183</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , ABSTRACT, De beursweek belicht de belangr...</td>\n",
       "      <td>15 september 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>184</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , De controversiële hervormingen van het Eu...</td>\n",
       "      <td>6 juli 2018</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>185 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                             infoblock  \\\n",
       "0    !PARAGRAPH!!PARAGRAPH!Le Monde!PARAGRAPH!12 se...   \n",
       "1    !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2    !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "3    !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "4    !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "..                                                 ...   \n",
       "180  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "181  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "182  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "183  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "184  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "\n",
       "                                              fulltext               date  \n",
       "0    [, , Mercredi 12 septembre, à Strasbourg, haut...  12 septembre 2018  \n",
       "1    [, ,             L’Internet gratuit vit peut-ê...       27 août 2019  \n",
       "2    [, , Après deux ans et demi de discussions par...       28 mars 2019  \n",
       "3    [, , NUMÉRIQUE,   Après trois jours de discuss...    15 Février 2019  \n",
       "4    [, , LÉGISLATION ,  Après deux ans et demi de ...       27 Mars 2019  \n",
       "..                                                 ...                ...  \n",
       "180  [, , Analyse Suske en Wiske-zaak , De erven-Va...  11 september 2014  \n",
       "181  [, , De laatste horde voor de nieuwe Europese ...      16 april 2019  \n",
       "182  [, ,          Google gaat de manier waarop de ...  27 september 2019  \n",
       "183  [, , ABSTRACT, De beursweek belicht de belangr...  15 september 2018  \n",
       "184  [, , De controversiële hervormingen van het Eu...        6 juli 2018  \n",
       "\n",
       "[185 rows x 3 columns]"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_nexis = pd.DataFrame.from_dict(articles_dict)\n",
    "df_nexis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>infoblock</th>\n",
       "      <th>fulltext</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!Le Monde!PARAGRAPH!12 se...</td>\n",
       "      <td>[, , Mercredi 12 septembre, à Strasbourg, haut...</td>\n",
       "      <td>12 09 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, ,             L’Internet gratuit vit peut-ê...</td>\n",
       "      <td>27 08 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , Après deux ans et demi de discussions par...</td>\n",
       "      <td>28 03 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , NUMÉRIQUE,   Après trois jours de discuss...</td>\n",
       "      <td>15 02 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , LÉGISLATION ,  Après deux ans et demi de ...</td>\n",
       "      <td>27 03 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>180</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , Analyse Suske en Wiske-zaak , De erven-Va...</td>\n",
       "      <td>11 09 2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>181</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , De laatste horde voor de nieuwe Europese ...</td>\n",
       "      <td>16 04 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>182</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, ,          Google gaat de manier waarop de ...</td>\n",
       "      <td>27 09 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>183</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , ABSTRACT, De beursweek belicht de belangr...</td>\n",
       "      <td>15 09 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>184</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , De controversiële hervormingen van het Eu...</td>\n",
       "      <td>6 07 2018</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>185 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                             infoblock  \\\n",
       "0    !PARAGRAPH!!PARAGRAPH!Le Monde!PARAGRAPH!12 se...   \n",
       "1    !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2    !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "3    !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "4    !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "..                                                 ...   \n",
       "180  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "181  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "182  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "183  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "184  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "\n",
       "                                              fulltext        date  \n",
       "0    [, , Mercredi 12 septembre, à Strasbourg, haut...  12 09 2018  \n",
       "1    [, ,             L’Internet gratuit vit peut-ê...  27 08 2019  \n",
       "2    [, , Après deux ans et demi de discussions par...  28 03 2019  \n",
       "3    [, , NUMÉRIQUE,   Après trois jours de discuss...  15 02 2019  \n",
       "4    [, , LÉGISLATION ,  Après deux ans et demi de ...  27 03 2019  \n",
       "..                                                 ...         ...  \n",
       "180  [, , Analyse Suske en Wiske-zaak , De erven-Va...  11 09 2014  \n",
       "181  [, , De laatste horde voor de nieuwe Europese ...  16 04 2019  \n",
       "182  [, ,          Google gaat de manier waarop de ...  27 09 2019  \n",
       "183  [, , ABSTRACT, De beursweek belicht de belangr...  15 09 2018  \n",
       "184  [, , De controversiële hervormingen van het Eu...   6 07 2018  \n",
       "\n",
       "[185 rows x 3 columns]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "repl = [(r\"[jJ]anuary|[Jj]anvier|[jJ]anuari\", \"01\"), \n",
    "        (r\"[fF]ebruary|[Ff]évrier|[fF]ebruari\", \"02\"), \n",
    "        (r\"[mM]arch|[Mm]ars|[mM]aart\", \"03\"),\n",
    "        (r\"[aA]pril|[Aa]vril|[aA]pril\", \"04\"),\n",
    "        (r\"[mM]ay|[Mm]ai|[mM]ei\", \"05\"),\n",
    "        (r\"[jJ]une|[Jj]uin|[jJ]uni\", \"06\"),\n",
    "        (r\"[jJ]uly|[Jj]uillet|[jJ]uli\", \"07\"),\n",
    "        (r\"[aA]ugust|[Aa]oût|[aA]ugustus\", \"08\"),\n",
    "        (r\"[sS]eptember|[Ss]eptembre|[sS]eptember\", \"09\"),\n",
    "        (r\"[Oo]ctober|[Oo]ctobre|[Oo]ktober\", \"10\"),\n",
    "        (r\"[nN]ovember|[Nn]ovembre|[nN]ovember\", \"11\"),\n",
    "        (r\"[dD]ecember|[Dd]écembre|[dD]ecember\", \"12\")]\n",
    "\n",
    "for i in range(len(df_nexis['date'])):\n",
    "    for old, new in repl:\n",
    "        df_nexis['date'][i] = re.sub(old, new, df_nexis['date'][i])\n",
    "\n",
    "df_nexis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>infoblock</th>\n",
       "      <th>fulltext</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2018-09-12</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!Le Monde!PARAGRAPH!12 se...</td>\n",
       "      <td>[, , Mercredi 12 septembre, à Strasbourg, haut...</td>\n",
       "      <td>12 09 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-08-27</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, ,             L’Internet gratuit vit peut-ê...</td>\n",
       "      <td>27 08 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-03-28</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , Après deux ans et demi de discussions par...</td>\n",
       "      <td>28 03 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-02-15</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , NUMÉRIQUE,   Après trois jours de discuss...</td>\n",
       "      <td>15 02 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-03-27</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , LÉGISLATION ,  Après deux ans et demi de ...</td>\n",
       "      <td>27 03 2019</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                    infoblock  \\\n",
       "datetime                                                        \n",
       "2018-09-12  !PARAGRAPH!!PARAGRAPH!Le Monde!PARAGRAPH!12 se...   \n",
       "2019-08-27  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2019-03-28  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2019-02-15  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2019-03-27  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "\n",
       "                                                     fulltext        date  \n",
       "datetime                                                                   \n",
       "2018-09-12  [, , Mercredi 12 septembre, à Strasbourg, haut...  12 09 2018  \n",
       "2019-08-27  [, ,             L’Internet gratuit vit peut-ê...  27 08 2019  \n",
       "2019-03-28  [, , Après deux ans et demi de discussions par...  28 03 2019  \n",
       "2019-02-15  [, , NUMÉRIQUE,   Après trois jours de discuss...  15 02 2019  \n",
       "2019-03-27  [, , LÉGISLATION ,  Après deux ans et demi de ...  27 03 2019  "
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_nexis['datetime'] = pd.to_datetime(df_nexis['date'], format=\"%d %m %Y\")\n",
    "df_nexis = df_nexis.set_index('datetime')\n",
    "df_nexis.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Create Salience Figure"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Important Note: Factiva Articles fulltext is not yet a list of paragraphs; Also, all preprocessing and extraction of interesting stuff from the infoblock is better done above"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Merge Nexis and Factiva Dataframe "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>infoblock</th>\n",
       "      <th>fulltext</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2019-12-12</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Kommentar!PA...</td>\n",
       "      <td>Überwachung abgewehrt!PARAGRAPH!!PARAGRAPH!Der...</td>\n",
       "      <td>12 12 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-11-08</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Die Regierung wird im Bereich digitalpolitisch...</td>\n",
       "      <td>8 11 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-11-06</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Die Buchbranche muss ökologischer werden! Bene...</td>\n",
       "      <td>6 11 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-10-29</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>Irgendwo in den virtuellen Weiten zwischen Ins...</td>\n",
       "      <td>29 10 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-10-24</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>OFFENERBRIEF!PARAGRAPH!!PARAGRAPH!Der 24. Okto...</td>\n",
       "      <td>24 10 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2014-09-11</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , Analyse Suske en Wiske-zaak , De erven-Va...</td>\n",
       "      <td>11 09 2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-04-16</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , De laatste horde voor de nieuwe Europese ...</td>\n",
       "      <td>16 04 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019-09-27</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, ,          Google gaat de manier waarop de ...</td>\n",
       "      <td>27 09 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-09-15</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , ABSTRACT, De beursweek belicht de belangr...</td>\n",
       "      <td>15 09 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018-07-06</td>\n",
       "      <td>!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...</td>\n",
       "      <td>[, , De controversiële hervormingen van het Eu...</td>\n",
       "      <td>6 07 2018</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1010 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                    infoblock  \\\n",
       "datetime                                                        \n",
       "2019-12-12   !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!Kommentar!PA...   \n",
       "2019-11-08  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2019-11-06  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2019-10-29  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2019-10-24  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "...                                                       ...   \n",
       "2014-09-11  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2019-04-16  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2019-09-27  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2018-09-15  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "2018-07-06  !PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!PARAGRAPH!!P...   \n",
       "\n",
       "                                                     fulltext        date  \n",
       "datetime                                                                   \n",
       "2019-12-12  Überwachung abgewehrt!PARAGRAPH!!PARAGRAPH!Der...  12 12 2019  \n",
       "2019-11-08  Die Regierung wird im Bereich digitalpolitisch...   8 11 2019  \n",
       "2019-11-06  Die Buchbranche muss ökologischer werden! Bene...   6 11 2019  \n",
       "2019-10-29  Irgendwo in den virtuellen Weiten zwischen Ins...  29 10 2019  \n",
       "2019-10-24  OFFENERBRIEF!PARAGRAPH!!PARAGRAPH!Der 24. Okto...  24 10 2019  \n",
       "...                                                       ...         ...  \n",
       "2014-09-11  [, , Analyse Suske en Wiske-zaak , De erven-Va...  11 09 2014  \n",
       "2019-04-16  [, , De laatste horde voor de nieuwe Europese ...  16 04 2019  \n",
       "2019-09-27  [, ,          Google gaat de manier waarop de ...  27 09 2019  \n",
       "2018-09-15  [, , ABSTRACT, De beursweek belicht de belangr...  15 09 2018  \n",
       "2018-07-06  [, , De controversiële hervormingen van het Eu...   6 07 2018  \n",
       "\n",
       "[1010 rows x 3 columns]"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = df_factiva.append(df_nexis)\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datetime\n",
       "2013-01-27    1\n",
       "2013-01-28    0\n",
       "2013-01-29    0\n",
       "2013-01-30    0\n",
       "2013-01-31    0\n",
       "             ..\n",
       "2019-12-27    0\n",
       "2019-12-28    0\n",
       "2019-12-29    0\n",
       "2019-12-30    0\n",
       "2019-12-31    2\n",
       "Freq: D, Length: 2530, dtype: int64"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "daily = df.resample('D').size()\n",
    "daily"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datetime\n",
       "2013-01-27    1\n",
       "2013-02-03    0\n",
       "2013-02-10    0\n",
       "2013-02-17    1\n",
       "2013-02-24    0\n",
       "             ..\n",
       "2019-12-08    0\n",
       "2019-12-15    2\n",
       "2019-12-22    3\n",
       "2019-12-29    1\n",
       "2020-01-05    2\n",
       "Freq: W-SUN, Length: 363, dtype: int64"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "weekly = df.resample('W').size()\n",
    "weekly"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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dOKJJw673GsbN27UMccco5///OeeHsdzzz2nUCikc88917OdQ8Ug8meiZVmqr6/PSqOspqbGGT9MxtixY1VZWakvfOELzmWpng23paUlpbCuoaFBy5cv13nnnRf133333afTTz9dhx9+eMz3s+9DpMigrKGhISpEi2doULZ48WL927/9m3MGTdvSpUtVX1+vAw44IJm76Rm/3y9p4OfHrFmzhr090UbZqFGjNGvWrBEDpoaGBm3cuNFZH5ANt9xyi8455xydd955uuSSS1RbW+ucYdQeHTbGqK2tLWo/mTQQDs+ePXvE+yENPG998803tW7duqigbM2aNc4vWV566SWdcMIJuv/++xM69u9973uaP3++3n333dTufBEiKAMApO3nP/+51q9fr3feeSdqTCvSK6+8ol27dunNN9/M8dGN3CiTMttMsNtDp512WtRtsKesOL3xxhsKh8MxX8D94Q9/0Jtvvqnvf//7zmWTJ09WOBzW5s2bc3WYCYsXlNmNsqHtjKqqKnV1denWW29VW1ub3nrrraRaUVu2bIna1/Kxj31MZ511lu644468bd7F8s4770iSjjnmGEkDn+uampqor48nnnhCkvTkk09Gva/996uuukp9fX25ONyEvP322zLGePL9O1JTU5NGjx6t4447TlOmTOF7aoqG/kysq6vLyo6yVMYupYFgZPv27VFB2axZs1RSUpJ0UOa2ED0RDzzwgNauXev6329+85uY7zdSUJbs4zJ58mRt3brVWQj/xBNPqL+/f1jb9p133tHBBx+ccADnNTsomzlzZtSIqq2iosK5PF6jTIreX9fS0qKysjLnRAg2+zHP5i8s33rrLe2///7O18maNWtUU1PjHOPWrVvV1tY27Ofd0PthjFFzc7NKSkq09957D7teQ0ODM8ERGZR1dnY6I/6xfsa4+fDDD3XXXXdJGnz+CoIyAECadu3apcWLF6u8vFw9PT0xAyf7h++KFStihmnZ0traqrKysqjfUNqyFZRNnDhRBx54oCRvT02O7LOfoLu9gAuFQrrqqqt00EEH6Stf+YpzuVsIlS+SbZRJA8HZ+vXr9aMf/Ujl5eXq6OjQxo0bE75Nt9+wL1q0SP39/br22mtTvSuesL8O7BcwlmUNW0Rufz9sbGx0AsVwOKympibNmDFDq1ev1r333pvbA48j3td4LjU2NuqT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zm737LPPNpWVlWbhwoVm7ty5RpJZsWJFxm9n9erVRpI56aSToi5/6qmnjCRzyCGHmP7+/rRvJxgMmn322cdIMm+++WbM6x100EFm8uTJZuHChebQQw+Ne/1t27YZy7LM3Llz0z6+bNpnn32iHt9TTz3V7LfffsOud/HFF5vRo0ebnp4es99++5nTTjvNeds///lPI8mceeaZWTnGcDhsysvLzSWXXBLzOj/60Y+MJLN06dK0b++kk05yfQz+8z//09TU1Dh/v+uuu4wkc8sttyR9GyeffLKRZFatWpXWsSJ9F198sSkvLzd33nmnkWRaWlqct82bN88cfPDBMd932rRp5qyzzhp2eVNTk5EU931jufTSS41lWeakk04yCxcuNJWVlebzn/98wu//+9//Pup702mnnWZmzZrlvN2+n5s2bYp6v9/97nfm//7v/5y/n3jiiTGP/8EHHzSSzIknnmiMMWbLli1Gkvmf//kf1+u3t7cby7LMtddem/D9SNX06dPN1KlTzcKFC01DQ4Opra2N+jmxY8cO4/P5zCGHHOL6/mvWrDGSoh4L+/0kmcWLF5t9993XfO5znzPGGHPOOeeYcePGmd7eXlNZWWn+8z//03mf119/3UgyV199dcr3Z/Xq1WbUqFHGsizzzjvvpPQxVqxYYSSZX/7yl6akpMT84Ac/SPl4UhUOh820adPMqaee6lz24osvGknm0UcfHXb9DRs2GEmmtrbWdHZ25vJQE/b++++bkpISM2fOHLNw4cKo//bff39TWVlpNm/e7Fz/17/+tZFkPvOZz6R920cccYRZsGCB8/df/epXRpJ59913jTHGnHHGGUaSueOOO2J+jDlz5phJkyaZhQsXmv32289UVVWZYDBojDHm3nvvNZLM6tWr0z7WSK2trUaSufnmmxO6/tlnn23GjRuXked6iQqHw+bqq68e9u/tZz/7mZFkJJmurq6kPl55ebk57bTTjCRz6623mjvuuMNIMuvXrzfGGHPKKaeYAw44IKP3I9tWrlxpfvCDH8T93DQ2Nsb9Gox0zDHHmKqqKiPJPPLII67XWbhwofn4xz9ujDHm+uuvN5LMt771rajr2F+7ixcvjrr8uuuuM5LMAw884PqxL7jgAlNVVRX3/nznO99xvgYee+wx1+uccMIJzv148MEHY36s//f//p95/fXXoy47/PDDzYIFC8zHP/5xc/zxxxtjBp57VlZWmkAgMOxjXHHFFaakpMR0dHQ4lx188MHmuOOOM8YY09vba6ZOnWrmzp1rwuFwzGMpYHHzJs8Dr1T/IyjLrJkzZxpJ5oorrvD6UJJ21FFHGUnm3//9370+lIISDofNYYcdZurr641lWea///u/c3a7U6ZMMV/84heNMcY0NzfHfYGUDjuIiHzyZszADwb7B9Vvf/vbjN2OJPPjH//Y9TqbNm0yksyNN95ojDFm+/btpqamxnz2s591vf7DDz9sJBmfz2e2b9+e9jFmQ0tLi/OkzXb11Vcbn89nuru7o647Z84cM3/+fGOMMV/4whfMzJkznbfdeOONRpKpr6/Pyg/i7du3G0nmJz/5SczrdHV1mYkTJ5qjjz46rWMIBoOmqqrK/Md//Mewt/34xz82kpzP5+mnn+4a5I6kr6/PVFdXG0nm9ttvT/lYkRnz5883//qv/2peeOEFI8n85S9/McYYs3v3buP3+81ll10W832POuoo5wmpLRwOm8MPP9z5ntLe3p7wsWzYsMGMHj3afO1rX3MuW7RokZFkXn755YQ+hv1ibsuWLcYYYy666CJTXV3tvN3+Ot65c2fcj3PppZeasrIy09fXF3V5MBg0++67r5FkKioqTG9vr1m+fPmIv/A69NBDzbx58xK6D6myQ67bbrvNGGPMPffcYySZt99+27nOn//8ZyPJWJbl+rn505/+ZCSZl156adjbpk6d6jxn+dnPfmaMMeaBBx5wvo9KMg8//HDU+5x++ummqqrK+Xwk64wzzjAVFRWmurranHzyySl9jIceesgJTw888EAn5MulDz74YFhws3nz5pjPH+6//37n31AuAtZUfPnLXzYVFRXDQmdjBkO0iy66yBgT/Qu5WC96kzFlyhRz9tlnO39/4oknjCTz3HPPmXA4bOrq6owkM3HiRLN79+5h728/9jfccIMxxpg//OEPRpJ54YUXjDGDzwXSPU43BxxwgPn0pz894vWGPt/0mv39ZOLEiUm/77777mv8fr+RZJYvX26ee+45I8n87W9/M8YY09DQYE4//fRMH3JBueCCC5x/82+99Zbrdf7rv/7LVFVVmW3btpm99trLSIp6PmqMMV/96leNJOc5q+3YY481ksw555zj+rGPOeYY84lPfCLuMS5ZssQ5xn/+85+u17nkkkuc67zyyitxP95QX/7yl8348eOjgj779cTzzz8/7Pqf+MQnzJFHHhl12Xe/+11TWlpqurq6nOcDTz75ZFLHUUDi5k2MXkJr1651luQW2pkuOjs79corr0gqvGP32sMPP6zXX39dN910k8466yzddtttOdmV8/7772vDhg3OCMeMGTPU0NCQlc+f/TF3796tV199NeryI444QgcddJCuuuqqtJZW9vT06Nprr9VRRx2lWbNmxbwfdo3Zvt9jx47V9773Pf3tb3/T0qVLYx57OBzWM888k/LxZZN9nyJHDOfMmaNwOKyVK1c6lw1dwDxnzhx98MEHzgiXfV/b2tq0YsWKjB/n0FEyNxUVFbrqqqu0dOlS/f3vf0/5tl599VXt3r07aj+ZLXKRbDgcdur3zz77bFLLsV977TVnFIvve96z91HNnj3b+bs0MGLe19c3bAQ30tCxRkn685//rFdffVXnn3++pMG9TIm49tpr1d/fHzUC9Z3vfEe1tbX6wQ9+kNDHaG1tVWlpqXO2scmTJ6uzs9PZCRRr9HKoOXPmKBAIDFvCf8899+iDDz7Q+eefr+7ubr388svO2fbcdrbYFixYoBdffNHZkZYN9r8n+9+v/bmL/Hdm/9kYE7VY22Z//g866KBhb5szZ45efPFF19u4/vrrZVmWM/piu+6669TT06PFixcnfX/efvttPfjgg/r2t7+tyy67TH/5y19SWjkQOdaV7DL1THEbaa+rq1NFRYXrzqHGxkZNmDBBp5xyin784x/n3djQW2+9pYceekjf/va3o076YJs5c6bOPfdc3XXXXfrwww919913a82aNTr//PPV1dXlPPdNRX9/vzZt2hT1M9H+t9fW1ubs2Tz//PO1efNm3XbbbcM+hv19yf46Pu6442RZlvN5am5u1pQpU4aduTITFixYoOeeey7uWKg0+Hwz3vfgXLJHL1MZA508ebL6+vqcs2lH/rzZvXu3mpubC2o/WTZE3v9Yu/EaGhq0e/duXXbZZers7NS5556r1atXa926dZIGvq/bX8NLly519h92d3c737sjz1RsM8Y4zwUSPcZYP+8ir5Ps10pDQ4Pzvc7+uh/6b9O2c+dOvfrqq8P+fSxYsEDBYFD/+Mc/dP311+v44493fU67RxgpScvX/2iUZc7dd99tJJlTTz3V+Hy+qPplvvvrX//qHLsks2bNGq8PqSD09fWZ/fff3xx44IEmFAqZ5uZm4/f7zTe/+c2s3/btt99uJJkPPvjAuewb3/iGqa6uHtY8SEd/f78ZN26cOfnkk41lWWbRokXGmMGxmauuusr5zf8vfvGLlG/HHtl79tlnzYUXXmgqKipcf4Nqj9eEQiHnsngtpv3228/8//buOzyqKv0D+PckISH0EJAAASIiUkRa6NJDZ0EEQgcpKvxEEXEFGyCiLLu21cWywipSVoqsKCU0BRSpIqFKB4GEJiItAZJ5f3/MPZcpd0pCCJPk+3mePJA7t5ybeefMuae2adNGChQoIE899VSm03cn9enTR6KiopzS/uuvvwoA+eyzz8xtc+fOFQCyZcsWEbnVurV161ZJSUmR/Pnzm59h3csiKyUkJHhsTXN0/fp1uffee6VmzZqZHqYxceJEUUrJ77//7vbaL7/8IgBk/vz5sn37dqe8KyNDPidPniwApGvXrlK0aFGnmKLsdebMGafhsxUqVJDevXuLiL1HlW6V9eTZZ5+VggULmp+htLQ0qVatmjzwwAOSkpIiRYoUkSeeeMKvtOgeKCNHjnR77d133/W7Vbhv374SExNj/q57POkhWWPHjpXQ0FCf59Ex7thr99q1a1KmTBlp1KiR/PHHH2ZerIdiehuCr6cKWL58uc9rZ1bPnj2lbNmyTnnaAw884NTzt1q1atKqVSspXLiw5XdmfHy83HvvvZbnHzdunNmjxM65/iUAACAASURBVPEa1apVEwASGxtredzQoUMlNDRUjh8/nqH76dSpkxQrVkwuXLggly9flnvuuUdatGiR4V6zXbp0MYff6vwnu4cz9uzZU6Kjo93SXr16denatavTNpvNJmXKlJFevXrJ7t27RSklzz//fHYm16eOHTua740nJ06ckLCwMImPj5fSpUtLkyZN5MKFCxIUFHRbw3GTkpLceufpXu/Tpk0z84vffvvNKYYcDRkyRIoVK+b0/VO3bl1p1qyZiIg0adJEWrRokek0evO///3PLHd5o4cnZvXwz8zSQ+qthtv70rdvXwEg/fr1M7dFR0dL//79ZdOmTQJA/ve//2VlcnMc3au7RIkSHvf55ptvzN5a/fr1k127dgkA+c9//iMi9uGgjmWz1atXi8it7x+9XX8fanqot+6N7MnVq1dFKSUAJCUlxXKfbdu2CQApXLhwhvPq6dOnCwC3smFsbKw8/PDDTvvqZ6C1a9c6bde94XWvUn97o+dQ7FGWE5w4cQI7d+70uk9SUpLPyfaPHTvmVsvty5o1a1CqVCk888wzsNlsWLdunflaamoqNm3ahI0bN2Ljxo04efKk2/EXL140X9+4cSMuXLiQoevfjtWrVyN//vx49dVXzXvxJTU1FcnJyW7bL1++jPPnz992mk6ePJmh3iGeJqHVbDab2dLhjytXruDcuXNe9/niiy+wf/9+TJ48GcHBwbj33nvxxBNPYMaMGVi6dKnT+7lx40Zs2bLF5z3t3LnT3N9bLK9ZswYVKlRwaiVp3bo1Ll265DahppULFy64pU//XL582dxvx44duHDhAnr27Im6deuaLSlr166FzWZDXFwcunTpgoYNG+K1114zVyJyZPXe2Gw2bNu2DRs3bsQPP/yAv/3tb2jfvj2aNWuGuLg4s4eEIxHBmjVr0LJlS6eVezz1Yjpx4gQOHDiADh06oHnz5l57DR06dMi8/61btyI9Pd2v+xARy+1paWk4ceKE2/aUlBScPn3a7Z5at27tNEl5pUqVkD9/fqceB6tXr3aagNlxUuuffvoJqampGDJkCCpVquRXDykRwY4dO8z79jWprz89ygD7xLKTJk1CYmIi3nvvPY9xpn+sVt1as2YN6tati+LFi7u9pls4jx49at7n66+/btnS583q1atRq1Yt9O7d2211oow6d+6c5X0cO3bMvM/Nmzdbttzv27fP3Gf79u1+f/ekp6dnKE/LqDNnzpi9nm6Hr7wZcJ+817G3zZo1a9C4cWOvPa/Kli2Lq1evmj0E58yZg7179+L1119H/vz50aJFC79jY/z48QgLC7NcJGT48OEoV64cXnrpJZ/vk+sk366rc167ds1nbzIAqFq1qttKoNOmTUNSUhKmTJmCYsWKoV69eli9erVfPcoefvhhhIaGOn3Piwi2b9/u87Pq6cexTKN7ebrmaa1bt8a6detw48YNJCUlYe/evWjfvr3H98ZbrwK93fUaurXeU6v9hAkToJRy6inoy4YNG7B06VKMHTsWERERKFSoEF555RWsXbsWM2bMsPx7eOqt53hPVpOpZ6bs6er69etISkqyfM3TewO4L5ICAPv370dSUhJat26N6tWrY8CAAfjXv/6FVatW+V2mceSpLHD8+HGvx3kqb/74449YtmyZ+d54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2t6nTx/ohtugoCD8/e9/97uiKLMWLlyIl19+2fJzU69ePcyZM8ev2LOSnp6ORx55BL/++isAexnz3XffRYcOHcx9rly5gkceeQSTJ092qqw7dOgQunfvjmvXrvl9vXLlymHZsmVOn6F///vfZoU6ALRq1QqffPKJx3M8//zzWLx4sdPv/jwAupZpHOXPnx9ffvklqlevbm7bvn07Ro8ejS+//BKlS5c2ty9fvhyjR49Geno6gIyVNzMrPT0dHTt2xJEjRwDY36cPPvjAqXxz8uRJ9O3bFx988IFTedOTLVu2YNKkSVi4cKHH8v/06dOxYcMGfPbZZx7PM2nSJOTPnx8vvPBCBu8qY44ePWpW4sfExJjbf/zxR0ycOBGLFy/2WN7MLb755hvMnz/frCikzLl06RK6d++Ot99+26mMeeLECQwcOBCzZs1yKv+7Pt+ULVsWK1eu9LvB6m7au3cvRowYgXnz5vlswM8DclRFWU8A7VwqyuqLyNOu++bWHmVERERERERERHTHeK0ocx83cXedBODYLz8aQNJdSgsREREREREREeUhgVZRthXA/Uqpe5VSoQB6A/jmLqeJiIiIiIiIiIjygBDfu2QfEUlTSo0EsAL2FTD/IyJ77nKyiIiIiIiIiIgoDwioijIAEJFlAJbd7XQQEREREREREVHeEmhDL4mIiIiIiIiIiO4KVpQRERERERERERGBFWVEREREREREREQAWFFGREREREREREQEgBVlREREREREREREAFhRRkREREREREREBIAVZURERERERERERABYUUZERERERERERASAFWVEREREREREREQAWFFGREREREREREQEgBVlREREREREREREAFhRRkREREREREREBIAVZURERERERERERABYUUZERERERERERASAFWVEREREREREREQAWFFGREREREREREQEgBVlREREREREREREAFhRRkREREREREREBIAVZURERERERERERABYUUZERERERERERASAFWVEREREREREREQAWFFGREREREREREQEgBVlREREREREREREAFhRRkREREREREREBIAVZURERERERERERABYUUZERERERERERASAFWVEREREREREREQAWFFGREREREREREQEgBVlREREREREREREAAAlInc7DZmilDoH4Ljxa1EAf2bwFNl1TAkA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\n",
      "text/plain": [
       "<Figure size 1512x1008 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from pandas.plotting import register_matplotlib_converters\n",
    "register_matplotlib_converters() #datetime function is not integrated beyond pandas this library allows matplotlib to process it\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(21, 14))\n",
    "ax.plot(weekly, color='black')\n",
    "\n",
    "#delete frame lines at the top and to the right\n",
    "ax.spines['right'].set_visible(False)\n",
    "ax.spines['top'].set_visible(False)\n",
    "\n",
    "#labels and ticks\n",
    "ax.set_xlabel('Daily observations')\n",
    "ax.set_ylabel('Number of Articles')\n",
    "ax.tick_params(axis ='both', which ='both', length = 2) #length of tick marks\n",
    "# tick labels\n",
    "ax.xaxis.set_major_locator(dates.YearLocator())\n",
    "ax.xaxis.set_major_formatter(dates.DateFormatter('%m\\n%Y'))\n",
    "ax.xaxis.set_minor_locator(dates.MonthLocator())\n",
    "ax.xaxis.set_minor_formatter(dates.DateFormatter('%m'))\n",
    "\n",
    "ax.set_title('Salience of Copyright Legislation in EU newspapers\\n')\n",
    "\n",
    "plt.savefig('fig_newspapers.jpg', optimize = True, dpi = 300, bbox_inches = 'tight')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x540 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#annotation\n",
    "ax.annotate('Wojcicki Comments',\n",
    "           xytext=[pd.Timestamp('2013-01'), 30],\n",
    "           xy=[pd.to_datetime('2018-10-22'), daily.loc[pd.to_datetime('2018-10-22')]],\n",
    "            color='crimson',\n",
    "           arrowprops={'arrowstyle': '-|>',\n",
    "                      'color': 'crimson'})\n",
    "ax.annotate('Youtube Pop-Ups',\n",
    "           xytext=[pd.Timestamp('2014-01'), 40],\n",
    "           xy=[pd.to_datetime('2018-11-20'), daily.loc[pd.to_datetime('2018-11-20')]],\n",
    "            color='blue',\n",
    "           arrowprops={'arrowstyle': '-|>',\n",
    "                      'color': 'blue'})\n",
    "ax.annotate('Blackout of Wikipedia et al.',\n",
    "           xytext=[pd.Timestamp('2015-01'), 50],\n",
    "           xy=[pd.to_datetime('2019-03-23'), daily.loc[pd.to_datetime('2019-03-23')]],\n",
    "            color='green',\n",
    "           arrowprops={'arrowstyle': '-|>',\n",
    "                      'color': 'green'})\n",
    "\n",
    "# add a vertical line for American Censorship Day and Internet Blackout\n",
    "ax.axvline(pd.to_datetime('2018-10-22'), color='crimson', linestyle='--', lw=1.5) # tell where the line is with pandas to datetime function\n",
    "ax.axvline(pd.to_datetime('2018-11-20'), color='blue', linestyle='--', lw=1.5)\n",
    "ax.axvline(pd.to_datetime('2019-03-23'), color='blue', linestyle='--', lw=1.5)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Quantitative Text Analysis"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Set paragraphs as unit of analysis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3246\n",
      "Am Donnerstag hat der Generalanwalt dem EuGH vorgeschlagen, wie das Gericht im Clinch um das Leistungsschutzrecht entscheiden soll. Die Empfehlung bedeutet eine heftige Schlappe für die VG Media: Seit Jahren streitet die Verwertungsgesellschaft mit Google um Bezahlung für die Textchen, mit denen der Konzern in seinen Suchergebnissen klarmacht, worum es in einem Nachrichtenartikel geht. Dem Generalanwalt zufolge darf das deutsche Gesetz, das Google zur Zahlung verpflichten könnte, nicht angewendet werden, weil der Gesetzgeber die geplante Regelung der EU-Kommission hätte vorlegen müssen und das nicht getan hat. Wenn der EuGH sich an den Rat seines Generalanwalts hält - das tut er häufig -, bleibt dem Landgericht Berlin, das die Rechtsfrage klären ließ, kaum anderes, als die Klage der VG Media gegen Google abzuweisen.\n"
     ]
    }
   ],
   "source": [
    "paragraphs = []\n",
    "\n",
    "for i in range(len(df['fulltext'])):\n",
    "    for j in range(len(df['fulltext'][i])):\n",
    "        paragraphs.append(df['fulltext'][i][j])\n",
    "        \n",
    "print(len(paragraphs))\n",
    "print(paragraphs[1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Delete very short paragraphs as they often are subheadlines or credits. [Optional, this step is probably not necessary for dictionary methods]. Also deletes empty paragraphs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Christoph Keese\n",
      "The following words were removed: \n",
      "The following words were removed: Christian Meier\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Benedikt Fuest\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Kommentar Seite 3, Seite 9\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: ►Seiten 4 und 7\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: ►Seiten 4, 7\n",
      "The following words were removed: Afghanistan\n",
      "The following words were removed: Geburtenkontrolle\n",
      "The following words were removed: EU-Parlament\n",
      "The following words were removed: Berlin\n",
      "The following words were removed: \n",
      "The following words were removed: ►Seite 4\n",
      "The following words were removed: \n",
      "The following words were removed: Ulf Poschardt\n",
      "The following words were removed: \n",
      "The following words were removed: Hans Nieswandt, Autor und DJ\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Lotto - Gewinnquoten\n",
      "The following words were removed: Frankfurt/M. - Dax steigt\n",
      "The following words were removed: \n",
      "The following words were removed: ►Seite 4\n",
      "The following words were removed: \n",
      "The following words were removed: ►Seite 4, Medien\n",
      "The following words were removed: \n",
      "The following words were removed: Christian Meier\n",
      "The following words were removed: WELT:\n",
      "The following words were removed: VALDO LEHARI JR.:\n",
      "The following words were removed: \n",
      "The following words were removed: Von Dietmar Wolff\n",
      "The following words were removed: \n",
      "The following words were removed: Urheberrecht\n",
      "The following words were removed: Großbritannien\n",
      "The following words were removed: Air Berlin\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Christian Meier\n",
      "The following words were removed: Was war der Hintergrund?\n",
      "The following words were removed: Wie geht es nun weiter?\n",
      "The following words were removed: \n",
      "The following words were removed: ►Medien\n",
      "The following words were removed: Was wurde noch beschlossen?\n",
      "The following words were removed: Was sagen die EU-Regierungen?\n",
      "The following words were removed: Wie geht es weiter?\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: ►Medien\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Was ist passiert?\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Thomas Heuzeroth\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Christian Meier\n",
      "The following words were removed: Wie geht es jetzt weiter?\n",
      "The following words were removed: \n",
      "The following words were removed: Thedel von Wallmoden\n",
      "The following words were removed: \n",
      "The following words were removed: Thomas Heuzeroth\n",
      "The following words were removed: \n",
      "The following words were removed: Carlo Perrone\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Benedikt Fuest\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Christian Meier\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \"Das Boot\"\n",
      "The following words were removed: Kino\n",
      "The following words were removed: Musik\n",
      "The following words were removed: Tanz\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Benedikt Fuest\n",
      "The following words were removed: \n",
      "The following words were removed: Sachsen-Anhalt\n",
      "The following words were removed: Berlin\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed:             \n",
      "The following words were removed:         \n",
      "The following words were removed: Einheitliche Spielregeln\n",
      "The following words were removed:         \n",
      "The following words were removed:             \n",
      "The following words were removed:       \n",
      "The following words were removed: \n",
      "The following words were removed:             \n",
      "The following words were removed:         \n",
      "The following words were removed: Einheitliche Spielregeln\n",
      "The following words were removed:         \n",
      "The following words were removed:             \n",
      "The following words were removed:       \n",
      "The following words were removed: \n",
      "The following words were removed:             \n",
      "The following words were removed:         \n",
      "The following words were removed: Einheitliche Spielregeln\n",
      "The following words were removed:         \n",
      "The following words were removed:             \n",
      "The following words were removed:       \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Janis Varoufakis\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Günther Oettinger\n",
      "The following words were removed: Heinz Hermann Thiele\n",
      "The following words were removed: Götz Werner\n",
      "The following words were removed: \n",
      "The following words were removed: Günther Oettinger\n",
      "The following words were removed: Luca C. di Montezemolo\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Maria Menzel\n",
      "The following words were removed: Für \"tierlose Landwirtschaft\"\n",
      "The following words were removed: Die EU jetzt richtig \"melken\"\n",
      "The following words were removed: Verbot der Gentechnik\n",
      "The following words were removed: Mit EU-Skepsis gewinnen\n",
      "The following words were removed: Austritt aus der EU\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Wird die Euro-Zone überleben?\n",
      "The following words were removed: Ich denke, nein.\n",
      "The following words were removed: A54344150\n",
      "The following words were removed: \n",
      "The following words were removed: Wird die Euro-Zone überleben?\n",
      "The following words were removed: Ich denke, nein.\n",
      "The following words were removed: A54344668\n",
      "The following words were removed: \n",
      "The following words were removed: ACTA\n",
      "The following words were removed: Blackout Day\n",
      "The following words were removed: Chaos Computer Club\n",
      "The following words were removed: Delay, Jan\n",
      "The following words were removed: Element of Crime\n",
      "The following words were removed: Faires Urheberrecht\n",
      "The following words were removed: Gema\n",
      "The following words were removed: Heveling, Ansgar\n",
      "The following words were removed: Juristen\n",
      "The following words were removed: Korb, dritter\n",
      "The following words were removed: Lobbyist\n",
      "The following words were removed: Megaupload\n",
      "The following words were removed: Netzgemeinde\n",
      "The following words were removed: Privatkopie\n",
      "The following words were removed: Qualität\n",
      "The following words were removed: Robots.txt\n",
      "The following words were removed: Schramm, Julia\n",
      "The following words were removed: Tisch, runder\n",
      "The following words were removed: Urheber\n",
      "The following words were removed: VDD\n",
      "The following words were removed: Warnmodell\n",
      "The following words were removed: Zukunftsforum Urheberrecht\n",
      "The following words were removed: A53808599\n",
      "The following words were removed: Acta\n",
      "The following words were removed: Blackout Day\n",
      "The following words were removed: Chaos Computer Club\n",
      "The following words were removed: Delay, Jan\n",
      "The following words were removed: Element of Crime\n",
      "The following words were removed: Faires Urheberrecht\n",
      "The following words were removed: Gema\n",
      "The following words were removed: Heveling, Ansgar\n",
      "The following words were removed: Juristen\n",
      "The following words were removed: Korb, dritter\n",
      "The following words were removed: Lobbyist\n",
      "The following words were removed: Megaupload\n",
      "The following words were removed: Netzgemeinde\n",
      "The following words were removed: Privatkopie\n",
      "The following words were removed: Qual\n",
      "The following words were removed: Robots.txt\n",
      "The following words were removed: Schramm, Julia\n",
      "The following words were removed: Tisch, runder\n",
      "The following words were removed: Urheber\n",
      "The following words were removed: VDD\n",
      "The following words were removed: Warnmodell\n",
      "The following words were removed: Zukunftsforum Urheberrecht\n",
      "The following words were removed: A53809142\n",
      "The following words were removed: ACTA\n",
      "The following words were removed: Blackout Day\n",
      "The following words were removed: Chaos Computer Club\n",
      "The following words were removed: Delay, Jan\n",
      "The following words were removed: Element of Crime\n",
      "The following words were removed: Faires Urheberrecht\n",
      "The following words were removed: Gema\n",
      "The following words were removed: Heveling, Ansgar\n",
      "The following words were removed: Juristen\n",
      "The following words were removed: Korb, dritter\n",
      "The following words were removed: Lobbyist\n",
      "The following words were removed: Megaupload\n",
      "The following words were removed: Netzgemeinde\n",
      "The following words were removed: Privatkopie\n",
      "The following words were removed: Qual\n",
      "The following words were removed: Robots.txt\n",
      "The following words were removed: Schramm, Julia\n",
      "The following words were removed: Tisch, runder\n",
      "The following words were removed: Urheber\n",
      "The following words were removed: VDD\n",
      "The following words were removed: Warnmodell\n",
      "The following words were removed: Zukunftsforum Urheberrecht\n",
      "The following words were removed: A53809140!PARAGRAPH!\n",
      "The following words were removed: Frankfurt/M. - Dax im Plus\n",
      "The following words were removed: \n",
      "The following words were removed: Illustration: Marc Herold \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: ►Seite 4\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Foto: FABRIZIO BENSCH/REUTERS\n",
      "The following words were removed: \n",
      "The following words were removed: Foto: Robert Haas \n",
      "The following words were removed: \n",
      "The following words were removed: Siehe Kommentar und Seite 10\n",
      "The following words were removed: Die Rechte Dritter\n",
      "The following words were removed: Kinder für immer\n",
      "The following words were removed: Antje Neubert, per E-Mail\n",
      "The following words were removed: \n",
      "The following words were removed: Christian Meier\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Thomas Vitzthum\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: ►Seiten 2 und 4\n",
      "The following words were removed: \n",
      "The following words were removed: Robin Alexander\n",
      "The following words were removed: \n",
      "The following words were removed: Es geht also um Geld?\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: ►Seiten 4, 5 und 6\n",
      "The following words were removed: Thomas Schmid\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: kai\n",
      "The following words were removed: Foto: BENJAMIN ZIBNER\n",
      "The following words were removed: \n",
      "The following words were removed: ►Seiten 4 und 5\n",
      "The following words were removed: Foto: Stephan Rumpf \n",
      "The following words were removed: \n",
      "The following words were removed: ►Seiten 4 und 5\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Christian Meier\n",
      "The following words were removed: \n",
      "The following words were removed: Peter Praschl\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Welche Grenzen?\n",
      "The following words were removed: Welche?\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Wie soll das funktionieren?\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: EU-Entscheidung\n",
      "The following words were removed: Schwedische Akademie\n",
      "The following words were removed: Speyer\n",
      "The following words were removed: Baden-Württemberg\n",
      "The following words were removed: \n",
      "The following words were removed: Micki Meuser\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Christian Meier\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Urheberrechtsreform - warum\n",
      "The following words were removed: so erregt \n",
      "The following words were removed: Meinung\n",
      "The following words were removed: aufgibt, stärkt die Wutbürger\n",
      "The following words were removed:  4\n",
      "The following words were removed: die Royals \n",
      "The following words were removed: Feuilleton\n",
      "The following words were removed: man seine Musik noch hören? \n",
      "The following words were removed: Sport\n",
      "The following words were removed: aus der Nationalelf \n",
      "The following words were removed: Medien, TV-/ Radioprogramm  \n",
      "The following words were removed: Forum & Leserbriefe  \n",
      "The following words were removed: Kino · Theater  \n",
      "The following words were removed: Rätsel  \n",
      "The following words were removed: Traueranzeigen  \n",
      "The following words were removed: Foto: DPA \n",
      "The following words were removed: \n",
      "The following words were removed: Schleierverbot\n",
      "The following words were removed: EU-Parlament\n",
      "The following words were removed: Nigeria\n",
      "The following words were removed: Pakistan\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Christian Meier\n",
      "The following words were removed: WELT:\n",
      "The following words were removed: Gerhard Pfennig:\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Christian Meier\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Worum geht es?\n",
      "The following words were removed: Was wurde beschlossen?\n",
      "The following words were removed: Was wird ihnen entgegnet?\n",
      "The following words were removed: Wie geht es weiter?\n",
      "The following words were removed: ►sz.de/nachrichtenpodcast\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: ►Seite 7\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Christian Meier\n",
      "The following words were removed: WELT:\n",
      "The following words were removed: Helga Trüpel:\n",
      "The following words were removed: Warum nicht?\n",
      "The following words were removed: Wie äußert sich das?\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: WELT:\n",
      "The following words were removed: Philipp Amthor:\n",
      "The following words were removed: \n",
      "The following words were removed: Florian Gehm\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Leistungsschutzrecht\n",
      "The following words were removed: Köln\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Manuel Brug\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Ansgar Graw\n",
      "The following words were removed: WELT:\n",
      "The following words were removed: Jamila Schäfer:\n",
      "The following words were removed: Wird die Jugend politischer?\n",
      "The following words were removed: Zum Beispiel?\n",
      "The following words were removed: Woran machen Sie das fest?\n",
      "The following words were removed: Doch, natürlich!\n",
      "The following words were removed: \n",
      "The following words were removed: Ulrich Exner\n",
      "The following words were removed: WELT:\n",
      "The following words were removed: Bernd Althusmann:\n",
      "The following words were removed: Ein Beispiel?\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: ►Seite R11\n",
      "The following words were removed: Philip Kuhn\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Roland Klecker\n",
      "The following words were removed: Thomas Ponier-Kröhl \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Der Geschichtsbewusste\n",
      "The following words were removed: Die Pragmatikerin\n",
      "The following words were removed: Der Botschafter\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Frans Timmermans\n",
      "The following words were removed: Manfred Weber\n",
      "The following words were removed: Margrethe Vestager\n",
      "The following words were removed: Jan Zahradil\n",
      "The following words were removed: Ska Keller\n",
      "The following words were removed: Nico Cué\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Präambel\n",
      "The following words were removed: I. Die Grundrechte\n",
      "The following words were removed: (2)\n",
      "The following words were removed: Artikel 2\n",
      "The following words were removed: Artikel 3\n",
      "The following words were removed: Artikel 4\n",
      "The following words were removed: Artikel 5\n",
      "The following words were removed: Artikel 6\n",
      "The following words were removed: Artikel 7\n",
      "The following words were removed: Artikel 8\n",
      "The following words were removed: Artikel 9\n",
      "The following words were removed: Artikel 10\n",
      "The following words were removed: Artikel 11\n",
      "The following words were removed: Artikel 12\n",
      "The following words were removed: Artikel 12a\n",
      "The following words were removed: Artikel 13\n",
      "The following words were removed: Fußnote\n",
      "The following words were removed: Artikel 14\n",
      "The following words were removed: Artikel 15\n",
      "The following words were removed: Artikel 16\n",
      "The following words were removed: Artikel 16a\n",
      "The following words were removed: Fußnote\n",
      "The following words were removed: Artikel 17\n",
      "The following words were removed: Artikel 17a\n",
      "The following words were removed: Artikel 18\n",
      "The following words were removed: Artikel 19\n",
      "The following words were removed: II. Der Bund und die Länder\n",
      "The following words were removed: Artikel 20a\n",
      "The following words were removed: Artikel 21\n",
      "The following words were removed: Artikel 22\n",
      "The following words were removed: Artikel 23\n",
      "The following words were removed: Artikel 24\n",
      "The following words were removed: Artikel 25\n",
      "The following words were removed: Artikel 26\n",
      "The following words were removed: Artikel 27\n",
      "The following words were removed: Artikel 28\n",
      "The following words were removed: Artikel 29\n",
      "The following words were removed: Artikel 30\n",
      "The following words were removed: Artikel 31\n",
      "The following words were removed: Artikel 32\n",
      "The following words were removed: Artikel 33\n",
      "The following words were removed: Artikel 34\n",
      "The following words were removed: Artikel 35\n",
      "The following words were removed: Artikel 36\n",
      "The following words were removed: Artikel 37\n",
      "The following words were removed: III. Der Bundestag\n",
      "The following words were removed: Artikel 39\n",
      "The following words were removed: Artikel 40\n",
      "The following words were removed: Artikel 41\n",
      "The following words were removed: Artikel 42\n",
      "The following words were removed: Artikel 43\n",
      "The following words were removed: Artikel 44\n",
      "The following words were removed: Artikel 45\n",
      "The following words were removed: Artikel 45a\n",
      "The following words were removed: Artikel 45b\n",
      "The following words were removed: Artikel 45c\n",
      "The following words were removed: Artikel 45d\n",
      "The following words were removed: Artikel 46\n",
      "The following words were removed: Artikel 47\n",
      "The following words were removed: Artikel 48\n",
      "The following words were removed: Artikel 49\n",
      "The following words were removed: IV. Der Bundesrat\n",
      "The following words were removed: Artikel 51\n",
      "The following words were removed: Artikel 52\n",
      "The following words were removed: Artikel 53\n",
      "The following words were removed: IV a. Gemeinsamer Ausschuß\n",
      "The following words were removed: V. Der Bundespräsident\n",
      "The following words were removed: Artikel 55\n",
      "The following words were removed: Artikel 56\n",
      "The following words were removed: Artikel 57\n",
      "The following words were removed: Artikel 58\n",
      "The following words were removed: Artikel 59\n",
      "The following words were removed: Artikel 59a\n",
      "The following words were removed: Artikel 60\n",
      "The following words were removed: Artikel 61\n",
      "The following words were removed: VI. Die Bundesregierung\n",
      "The following words were removed: Artikel 63\n",
      "The following words were removed: Artikel 64\n",
      "The following words were removed: Artikel 65\n",
      "The following words were removed: Artikel 65a\n",
      "The following words were removed: (2) (weggefallen)\n",
      "The following words were removed: Artikel 67\n",
      "The following words were removed: Artikel 68\n",
      "The following words were removed: Artikel 69\n",
      "The following words were removed: Artikel 70\n",
      "The following words were removed: Artikel 71\n",
      "The following words were removed: Artikel 72\n",
      "The following words were removed: 3. die Bodenverteilung;\n",
      "The following words were removed: Artikel 73\n",
      "The following words were removed: 6. den Luftverkehr;\n",
      "The following words were removed: a) in der Kriminalpolizei,\n",
      "The following words were removed: \n",
      "The following words were removed: Christian Meier\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Kaja Klapsa\n",
      "The following words were removed: WELT:\n",
      "The following words were removed: Oskar Niedermayer:\n",
      "The following words were removed: \n",
      "The following words were removed: Torsten Krauel\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Nikolas Stihl\n",
      "The following words were removed: \n",
      "The following words were removed: Europäische Union\n",
      "The following words were removed: Deutsche Post\n",
      "The following words were removed: Medienkonzern\n",
      "The following words were removed: Frankreich\n",
      "The following words were removed: \n",
      "The following words were removed: Was macht Deutschland?\n",
      "The following words were removed: \n",
      "The following words were removed: ►Wirtschaft\n",
      "The following words were removed: \n",
      "The following words were removed: Zum Beispiel?\n",
      "The following words were removed: Ein Pflichtschulfach Europa?\n",
      "The following words were removed: \n",
      "The following words were removed: Zum Beispiel?\n",
      "The following words were removed: Ein Pflichtschulfach Europa?\n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: \n",
      "The following words were removed: Demokratisch wichtige Aufgabe\n",
      "The following words were removed: Enteignung ist weiter möglich\n",
      "The following words were removed: Für die Großen mitverdienen\n",
      "The following words were removed: Der Gier Einhalt gebieten\n",
      "The following words were removed: Keine Apfelpflücker\n",
      "The following words were removed: Datenschutz beachten\n",
      "The following words were removed: Die Sache mit Wikipedia\n",
      "The following words were removed: \n",
      "The following words were removed: WELT:\n",
      "The following words were removed: Mathias Döpfner:\n",
      "The following words were removed: Was macht Sie da so sicher?\n",
      "The following words were removed: Inwiefern?\n",
      "The following words were removed: Und die Antwort lautet wie?\n"
     ]
    }
   ],
   "source": [
    "for paragraph in paragraphs:\n",
    "    if len(paragraph) < 30:\n",
    "        paragraphs.remove(paragraph)\n",
    "        print(\"The following words were removed:\", paragraph) #print the paragraph that was removed\n",
    "    else:\n",
    "        pass"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Natural Language Processing"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Remove Punctuation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "#remove punctuations\n",
    "paragraphs = [\"\".join([l for l in paragraph if l not in punctuation]) for paragraph in paragraphs]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "paragraphs = [paragraph.lower() for paragraph in paragraphs]  # convert to lower case\n",
    "paragraphs = [\" \".join(paragraph.split()) for paragraph in paragraphs]   # remove double spaces by splitting the strings into words and joining these words again"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Stop Word Removal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Remove stopwords\n",
    "##define list containing all stopwords from nltk package\n",
    "l_stopword = stopwords.words('german')\n",
    "l_stopword.append('mr')\n",
    "\n",
    "##remove stopwords\n",
    "paragraphs = [\" \".join([word for word in paragraph.split() if word not in l_stopword]) for paragraph in paragraphs]\n",
    "##from the inside to the outside: take each speech in speeches_clean. Than, take each word that appears in a splitted speech and test if it is not in the stopword list. If it is not, join it together and put it as a element in the list speeches_nost "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "erst wurde ewig gesetzesentwurf gerungen gericht länger anwendung europäische gerichtshof eugh kommen sagen interessante argumente gesetz auslegung streitet darf gar angewendet ; donnerstag generalanwalt eugh vorgeschlagen gericht clinch leistungsschutzrecht entscheiden empfehlung bedeutet heftige schlappe vg media seit jahren streitet verwertungsgesellschaft google bezahlung textchen denen konzern suchergebnissen klarmacht worum nachrichtenartikel geht generalanwalt zufolge darf deutsche gesetz google zahlung verpflichten angewendet gesetzgeber geplante regelung eukommission hätte vorlegen müssen getan eugh rat generalanwalts hält tut häufig bleibt landgericht berlin re\n",
      "2677\n"
     ]
    }
   ],
   "source": [
    "print(paragraphs[0][:500], \";\", paragraphs[1][:500])\n",
    "print(len(paragraphs))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Lemmatizing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "#!python -m spacy download de_core_news_md"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "nlp = spacy.load('de_core_news_md') #load spacy's german language toolkit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2677\n"
     ]
    }
   ],
   "source": [
    "paragraphs = [nlp(word) for word in paragraphs]\n",
    "    \n",
    "print(len(paragraphs)) #checks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "erst wurde ewig gesetzesentwurf gerungen gericht länger anwendung europäische gerichtshof eugh kommen sagen interessante argumente gesetz auslegung streitet darf gar angewendet\n"
     ]
    }
   ],
   "source": [
    "print(paragraphs[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2677\n",
      "erst werden ewig gesetzesentwurf ringen gericht lang anwendung europäische gerichtshof eugh kommen sagen interessante argumente gesetz auslegung streiten dürfen gar anwenden\n"
     ]
    }
   ],
   "source": [
    "paragraphs = [\" \".join([word.lemma_ for word in paragraph]) for paragraph in paragraphs]\n",
    "\n",
    "print(len(paragraphs))\n",
    "print(paragraphs[0])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Topic Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(33,\n",
       "  '0.016*\"schon\" + 0.013*\"europa\" + 0.011*\"viel\" + 0.010*\"immer\" + 0.010*\"gehen\" + 0.009*\"facebook\" + 0.008*\"gewerkschaft\" + 0.008*\"natürlich\" + 0.008*\"menschen\" + 0.008*\"mehr\"'),\n",
       " (80,\n",
       "  '0.033*\"parteien\" + 0.017*\"gesetzgebung\" + 0.012*\"ausschließlich\" + 0.010*\"geld\" + 0.010*\"geben\" + 0.010*\"treffen\" + 0.009*\"recht\" + 0.009*\"europäern\" + 0.009*\"anvertrauen\" + 0.008*\"grundrechte\"'),\n",
       " (25,\n",
       "  '0.022*\"27\" + 0.016*\"programme\" + 0.013*\"eu\" + 0.012*\"sein\" + 0.011*\"briten\" + 0.011*\"überwachung\" + 0.010*\"negativ\" + 0.010*\"erneute\" + 0.010*\"täglich\" + 0.009*\"willen\"'),\n",
       " (92,\n",
       "  '0.153*\"1\" + 0.111*\"2\" + 0.063*\"4\" + 0.041*\"3\" + 0.028*\"5\" + 0.018*\"länder\" + 0.016*\"6\" + 0.015*\"recht\" + 0.015*\"mitglieder\" + 0.014*\"8\"'),\n",
       " (44,\n",
       "  '0.018*\"spätestens\" + 0.013*\"gesellschaft\" + 0.012*\"anspruchsvolle\" + 0.012*\"diskussion\" + 0.009*\"jugendlich\" + 0.008*\"erheblich\" + 0.008*\"mehr\" + 0.008*\"eigentum\" + 0.007*\"dritt\" + 0.007*\"klaren\"'),\n",
       " (8,\n",
       "  '0.066*\"soweit\" + 0.009*\"abgeordnet\" + 0.009*\"recht\" + 0.008*\"viel\" + 0.008*\"gesetzgebung\" + 0.007*\"geschäftsordnung\" + 0.007*\"französische\" + 0.007*\"liegend\" + 0.007*\"binnen\" + 0.007*\"aufnahme\"'),\n",
       " (83,\n",
       "  '0.013*\"folgen\" + 0.013*\"grundrecht\" + 0.012*\"artikel\" + 0.012*\"geradezu\" + 0.012*\"organisationen\" + 0.012*\"fernmeldegeheimnis\" + 0.011*\"nachholen\" + 0.010*\"insbesondere\" + 0.009*\"viel\" + 0.007*\"lässt\"'),\n",
       " (90,\n",
       "  '0.030*\"generation\" + 0.028*\"europa\" + 0.018*\"integration\" + 0.018*\"menschen\" + 0.017*\"gebären\" + 0.016*\"selbstverständlich\" + 0.012*\"grund\" + 0.011*\"chance\" + 0.011*\"genehmigung\" + 0.011*\"alt\"'),\n",
       " (48,\n",
       "  '0.063*\"gewalt\" + 0.019*\"präsident\" + 0.019*\"mittel\" + 0.014*\"müssen\" + 0.012*\"deutschland\" + 0.011*\"seiten\" + 0.010*\"geben\" + 0.010*\"unabhängig\" + 0.010*\"kern\" + 0.010*\"macron\"'),\n",
       " (41,\n",
       "  '0.017*\"zuckerberg\" + 0.017*\"mobilisierung\" + 0.014*\"qualifizieren\" + 0.013*\"vollenden\" + 0.011*\"twitch\" + 0.009*\"16\" + 0.008*\"zusammen\" + 0.007*\"4\" + 0.007*\"70\" + 0.007*\"europäische\"'),\n",
       " (46,\n",
       "  '0.045*\"bundeskanzler\" + 0.017*\"politisch\" + 0.015*\"mehr\" + 0.013*\"ruf\" + 0.013*\"handel\" + 0.012*\"stimmen\" + 0.011*\"parteien\" + 0.010*\"eu\" + 0.009*\"mindestens\" + 0.007*\"münchner\"'),\n",
       " (42,\n",
       "  '0.065*\"bundestages\" + 0.026*\"mitglieder\" + 0.026*\"3\" + 0.019*\"antrag\" + 0.016*\"mehrheit\" + 0.013*\"bundestag\" + 0.011*\"bundesverfassungsgericht\" + 0.010*\"bedeutung\" + 0.010*\"dringend\" + 0.010*\"sonstig\"'),\n",
       " (87,\n",
       "  '0.017*\"eu\" + 0.016*\"europa\" + 0.012*\"groß\" + 0.011*\"gehen\" + 0.009*\"gut\" + 0.009*\"viel\" + 0.009*\"sein\" + 0.008*\"digitale\" + 0.008*\"welt\" + 0.008*\"mein\"'),\n",
       " (20,\n",
       "  '0.031*\"1\" + 0.016*\"dienstleistungen\" + 0.011*\"konkrete\" + 0.010*\"rechtspopulisten\" + 0.010*\"allgemein\" + 0.010*\"ausübung\" + 0.010*\"unmittelbar\" + 0.009*\"scheinen\" + 0.009*\"geben\" + 0.009*\"jemand\"'),\n",
       " (64,\n",
       "  '0.027*\"aufgaben\" + 0.023*\"ausübung\" + 0.018*\"beeinträchtigen\" + 0.014*\"länder\" + 0.013*\"verträge\" + 0.012*\"geheim\" + 0.009*\"kurz\" + 0.007*\"fragen\" + 0.007*\"lösen\" + 0.006*\"absolut\"'),\n",
       " (55,\n",
       "  '0.043*\"jugendlich\" + 0.014*\"souverän\" + 0.012*\"eu\" + 0.010*\"gehen\" + 0.010*\"regel\" + 0.009*\"dürfen\" + 0.009*\"beteiligen\" + 0.009*\"europas\" + 0.008*\"öffentlich\" + 0.008*\"personen\"'),\n",
       " (35,\n",
       "  '0.012*\"malta\" + 0.010*\"bundestag\" + 0.009*\"lohnen\" + 0.008*\"strafe\" + 0.008*\"rahmen\" + 0.008*\"kommission\" + 0.008*\"bestimmen\" + 0.008*\"befördern\" + 0.007*\"geben\" + 0.007*\"natürlich\"'),\n",
       " (65,\n",
       "  '0.017*\"mindestlohn\" + 0.013*\"bundesregierung\" + 0.013*\"hören\" + 0.010*\"interessenausgleich\" + 0.010*\"beauftragen\" + 0.010*\"übrigens\" + 0.008*\"sein\" + 0.008*\"aufruf\" + 0.007*\"zuckerberg\" + 0.007*\"lang\"'),\n",
       " (21,\n",
       "  '0.012*\"9\" + 0.010*\"europa\" + 0.010*\"politisch\" + 0.010*\"gemeinsam\" + 0.009*\"europäisch\" + 0.009*\"kind\" + 0.009*\"europäische\" + 0.009*\"geben\" + 0.008*\"wählen\" + 0.008*\"groß\"'),\n",
       " (27,\n",
       "  '0.016*\"triefen\" + 0.015*\"behörden\" + 0.009*\"angelegenheit\" + 0.009*\"alternative\" + 0.009*\"nachrichtenagentur\" + 0.009*\"gesellschaftliche\" + 0.009*\"mitmachen\" + 0.009*\"arrogant\" + 0.009*\"ignorieren\" + 0.009*\"pleite\"')]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lda_input = [paragraph.split() for paragraph in paragraphs]\n",
    "id2word_m = corpora.Dictionary(lda_input)\n",
    "ldacorpus = [id2word_m.doc2bow(doc) for doc in ldainput]\n",
    "lda = models.LdaModel(ldacorpus, id2word = id2word_m, num_topics = 100)\n",
    "lda.print_topics(num_words=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create bigrams"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "paragraphs_bigrams = [[\"_\".join(tup) for tup in nltk.ngrams(paragraph.split(),2)] for paragraph in paragraphs]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "# maybe we want both unigrams and bigrams in the feature set?\n",
    "assert len(paragraphs)==len(paragraphs_bigrams)\n",
    "paragraphs_unibi = []\n",
    "for a,b in zip([paragraph.split() for paragraph in paragraphs], paragraphs_bigrams):\n",
    "    paragraphs_unibi.append(a + b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(0, '0.019*\"bundes\" + 0.009*\"nah\" + 0.007*\"bund\" + 0.006*\"3\" + 0.005*\"1\"'),\n",
       " (1,\n",
       "  '0.007*\"parteien\" + 0.006*\"allgemein\" + 0.005*\"3\" + 0.005*\"grund_gesetzes\" + 0.005*\"europawahlen\"'),\n",
       " (2,\n",
       "  '0.025*\"2\" + 0.010*\"soweit\" + 0.010*\"bundestages\" + 0.010*\"1\" + 0.007*\"bundeskanzler\"'),\n",
       " (3,\n",
       "  '0.005*\"verteidigung\" + 0.004*\"7\" + 0.004*\"eu\" + 0.004*\"post\" + 0.004*\"nah\"'),\n",
       " (4,\n",
       "  '0.006*\"bundesrat\" + 0.005*\"9\" + 0.005*\"suchmaschine\" + 0.005*\"europäische\" + 0.004*\"bewegung\"'),\n",
       " (5,\n",
       "  '0.007*\"europa\" + 0.004*\"immer\" + 0.004*\"artikel\" + 0.004*\"jugendlich\" + 0.004*\"familie\"'),\n",
       " (6,\n",
       "  '0.012*\"artikel\" + 0.004*\"glauben\" + 0.004*\"fach\" + 0.004*\"gebrauch\" + 0.004*\"deutsch\"'),\n",
       " (7,\n",
       "  '0.008*\"staatlich\" + 0.004*\"mobilisierung\" + 0.003*\"gewählt\" + 0.003*\"gleich\" + 0.003*\"soziale\"'),\n",
       " (8,\n",
       "  '0.006*\"landes\" + 0.006*\"eu\" + 0.006*\"5\" + 0.006*\"erzählung\" + 0.004*\"autoritär\"'),\n",
       " (9, '0.029*\"1\" + 0.019*\"4\" + 0.009*\"2\" + 0.009*\"3\" + 0.009*\"gewalt\"')]"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "id2word_m2 = corpora.Dictionary(paragraphs_unibi)                       \n",
    "id2word_m2.filter_extremes(no_below=5, no_above=0.8)\n",
    "ldacorpus_m2 = [id2word_m2.doc2bow(doc) for doc in paragraphs_unibi]\n",
    "tfidfcorpus_m2 = models.TfidfModel(ldacorpus_m2)\n",
    "lda_m2 = models.ldamodel.LdaModel(corpus=tfidfcorpus_m2[ldacorpus_m2],id2word=id2word_m2,num_topics=10)\n",
    "lda_m2.print_topics(num_words=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "vis_data = pyLDAvis.gensim.prepare(lda_m2,ldacorpus_m2,id2word_m2)\n",
    "pyLDAvis.display(vis_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
